第 5-3 课:线程池——Executors + 面试题
生活随笔
收集整理的這篇文章主要介紹了
第 5-3 课:线程池——Executors + 面试题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
線程池的創建分為兩種方式:ThreadPoolExecutor 和 Executors,上一節學習了 ThreadPoolExecutor 的使用方式,本節重點來看 Executors 是如何創建線程池的。
Executors 可以創建以下六種線程池。
- FixedThreadPool(n):創建一個數量固定的線程池,超出的任務會在隊列中等待空閑的線程,可用于控制程序的最大并發數。
- CachedThreadPool():短時間內處理大量工作的線程池,會根據任務數量產生對應的線程,并試圖緩存線程以便重復使用,如果限制 60 秒沒被使用,則會被移除緩存。
- SingleThreadExecutor():創建一個單線程線程池。
- ScheduledThreadPool(n):創建一個數量固定的線程池,支持執行定時性或周期性任務。
- SingleThreadScheduledExecutor():此線程池就是單線程的 newScheduledThreadPool。
- WorkStealingPool(n):Java 8 新增創建線程池的方法,創建時如果不設置任何參數,則以當前機器處理器個數作為線程個數,此線程池會并行處理任務,不能保證執行順序。
下面分別來看以上六種線程池的具體代碼使用。
FixedThreadPool 使用
創建固定個數的線程池,具體示例如下:
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(2); for (int i = 0; i < 3; i++) {fixedThreadPool.execute(() -> {總結
以上是生活随笔為你收集整理的第 5-3 课:线程池——Executors + 面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 结语|日拱一卒无有尽,功不唐捐终入海
- 下一篇: 第 1-7 课:数组和排序算法 + 面试