線程池
線程池的作用
核心點:復用機制提前創建好固定的線程一直在運行狀態實現復用限制線程創建數量。
1.降低資源消耗:通過池化技術重復利用已創建的線程,降低線程創建和銷毀造成的損耗。
2.提高響應速度:任務到達時,無需等待線程創建即可立即執行。
3.提高線程的可管理性:線程是稀缺資源,如果無限制創建,個僅會淚R系沉貢源,貯云公為線程的不合理分布導致資源調度失衡,降低系統的穩定性。使用線程池可以進行統一的分
配、調優和監控。
4.提供更多更強大的功能:線程池具備可拓展性,允許開發人員向其中增加更多的功能。比如延時定時線程池ScheduledThreadPoolExecutor,就允許任務延期執行或定期執行。
線程池創建方式
Executors.newCachedThreadPool();可緩存線程池
Executors.newFixedThreadPool();可定長度
Executors.newScheduledThreadPool() ;可定時
Executors.newSingleThreadExecutor();單例
這4種方式底層是用無界緩存我們的隊列的,可能會發生線程池溢出
public class Test005 {public static void main(String[] args) {//
// ExecutorService executorService = Executors.newCachedThreadPool();ExecutorService executorService = Executors.newFixedThreadPool(2);for (int i = 0; i < 10; i++) {final int finalI = i;executorService.execute(new Runnable() {@Overridepublic void run() {System.out.println(Thread.currentThread().getName() + "," + finalI);}});}}
}