還在用Executors創建線程池?小心內存溢出

線程池不建議使用Executors去創建,而是通過ThreadPoolExecutor的方式,這樣的處理方式讓寫的同學更加明確線程池的運行規則,規避資源耗盡的風險。

Executors各個方法的弊端:

  1. newFixedThreadPool和newSingleThreadExecutor:
    主要問題是堆積的請求處理隊列可能會耗費非常大的內存,甚至OOM。(筆者注:阻塞隊列均採用LinkedBlockingQueue)
  2. newCachedThreadPool和newScheduledThreadPool:
    主要問題是線程數最大數是Integer.MAX_VALUE,可能會創建數量非常多的線程,甚至OOM。

摘自《阿里巴巴java開發手冊》原文

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章