Executors框架——5种常用的线程池介绍及区别
生活随笔
收集整理的這篇文章主要介紹了
Executors框架——5种常用的线程池介绍及区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. CachedThreadPool線程池(可向下轉型為ThreadPoolExecutor)
1.1 線程池核心線程數是0,說明線程空閑時,會被自動回收。
1.2 任務隊列只能有一個任務,而且最大線程數是整數最大值。所以有任務就會創建線程處理,這就要求任務執行時間要短,不然會創建很多線程
?
2. FixedThreadPool線程池(可向下轉型為ThreadPoolExecutor)
2.1 核心線程數和最大線程數相等,不存在線程回收
?
3. SingleThreadExecutor線程池
3.1 只能創建一個線程的SingleThreadExecutor線程池和線程的區別
3.2 線程池中唯一的線程發生異常結束,線程池會再創建一個線程
?
4. WorkStealingPool線程池(可向下轉型為ForkJoinPool)
4.1 本質是ForkJoinPool
4.2 最大的特點之一:線程可以懸掛當前任務,從任務隊列執行子任務
4.3 最大的特點之二:從自己隊列按LIFO后入先出方式拿取任務,然后會從其它線程的工作隊列按FIFO先入先出方式"竊取"任務
?
5. ScheduleThreadPoolExecutor線程池
5.1 任務執行時間很長時,不能保證周期性執行
5.2 不支持回調
?
總結
以上是生活随笔為你收集整理的Executors框架——5种常用的线程池介绍及区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ThreadPoolExecutor线程
- 下一篇: Future和CompletableFu