4種執行緒池的特點介紹
阿新 • • 發佈:2019-02-12
一、執行緒池的分類
- FixThreadPool
- CachedThreadPool
- ScheduledThreadPool
- SingleThreadPool
二、特點介紹
1.FixedThreadPool
1.1 通過Exector的newFixedThreadPool靜態方法來建立
1.2 執行緒數量固定的執行緒池
1.3 只有核心執行緒切並且不會被回收
1.4 當所有執行緒都處於活動狀態時,新任務都會處於等待狀態,直到有執行緒空閒出來
2.CachedThreadPool
2.1 通過Exector的newCachedThreadPool靜態靜態方法來建立
2.2 執行緒數量不定的執行緒池
2.3 只有非核心執行緒,最大執行緒數量為Integer.MAX_VALUE,可視為任意大
2.4 有超時機制,時長為60s,即超過60s的空閒執行緒就會被回收
2.5 當執行緒池中的執行緒都處於活動狀態時,執行緒池會建立新的執行緒來處理新任務,否則就會利用空閒的執行緒來處理新任務。因此任何任務都會被立即執行
2.6 該執行緒池比較適合執行大量耗時較少的任務
3.ScheduledThreadPool
3.1 通過Exector的newScheduledThreadPool靜態方法來建立
3.2 核心執行緒數量是固定的,而非核心執行緒數不固定的,並且非核心執行緒
3.3 該執行緒池主要用於執行定時任務和具有固定週期的重複任務
4.SingleThreadPool
4.1 通過Exector的newSingleThreadPool靜態方法來建立
4.2 只有一個核心執行緒,它確保所有的任務都在同一個執行緒中按順序執行。因此在這些任務之間不需要處理執行緒同步的問題