JDK5中增加了Doug Lea的併發庫,這一引進給Java線程的管理和使用提供了強大的便利性。 java.util.current包中提供了對線程優化、管理的各項操作,使得線程的使用變得的心應手。該包提供了線程的運行,線程池的創建,線程生命週期的控制。
Java通過Executors提供四個靜態方法創建四種線程池,分別爲:
- newCachedThreadPool創建一個可緩存線程池,如果線程池長度超過處理需要,可靈活回收空閒線程,若無可回收,則新建線程。
- newFixedThreadPool 創建一個定長線程池,可控制線程最大併發數,超出的線程會在隊列中等待。
- newScheduledThreadPool 創建一個定長線程池,支持定時及週期性任務執行。
- newSingleThreadExecutor 創建一個單線程化的線程池,它只會用唯一的工作線程來執行任務,保證所有任務按照指定順序(FIFO, LIFO, 優先級)執行。