1.執行緒池的作用
限制系統中執行執行緒的數量
2.為什麼要用執行緒池
2.1.減少了建立和銷毀執行緒的次數,每個工作執行緒都可以被重複利用,可執行多個任務.
2.2 可以根據系統的承受能力,調整執行緒池中工作線執行緒的數目,防止因為消耗過多的記憶體,而把伺服器累趴下。
3.執行緒池介面類
3.1 executorservice : 真正的執行緒池介面。
3.2 scheduledexecutorservice:能和timer/timertask類似,解決那些需要任務重複執行的問題。
3.3 threadpoolexecutor : executorservice的預設實現.
3.4 scheduledthreadpoolexecutor : 繼承threadpoolexecutor的scheduledexecutorservice介面實現,週期性任務排程的類實現。
4.執行緒池的靜態工具類 executors 常用的方法
4.1 newsinglethreadexecutor
建立乙個單執行緒的執行緒池,採用無邊界佇列linkedblockingqueue.即執行緒有限,但佇列無限.
4.2 newfixedthreadpool
建立固定大小的執行緒池,採用無邊界佇列linkedblockingqueue.即執行緒有限,但佇列無限.
4.3 newcachedthreadpool
建立乙個可快取的執行緒池 ,採用synchronousqueue佇列.
4.4 newscheduledthreadpool
建立乙個大小無限的執行緒池。此執行緒池支援定時以及週期性執行任務的需求。
5.執行緒池的執行策略與blockingqueue
5.1 如果執行的執行緒少於 corepoolsize(最小執行緒數量),則 executor始終首選新增新的執行緒,而不進行排隊.
5.2 如果執行的執行緒等於或多於 corepoolsize,則 executor始終首選將請求加入佇列,而不新增新的執行緒。
5.3 如果無法將請求加入佇列,則建立新的執行緒,除非建立此執行緒超出 maximumpoolsize,在這種情況下,任務將被拒絕。
Java執行緒池
executors類詳解 此包中所定義的 executor executorservice scheduledexecutorservice threadfactory 和 callable 類的工廠和實用方法。此類支援以下各種方法 建立並返回設定有常用配置字串的 executorservice 的...
Java執行緒池
一 執行緒池 單執行緒 public static void runsinglethreadpool public static void runsinglethreadpoolwithfactory private static class mythreadfactory implements t...
Java執行緒池
多執行緒的軟體設計方法確實可以最大限度地發揮現代多核處理器的計算能力,提高生產系統的吞吐量和效能。但是,若不加控制和管理的隨意使用執行緒,對系統的效能反而會產生不利的影響。為了避免系統頻繁地建立和銷毀執行緒,我們可以讓建立的執行緒進行復用。比如資料庫中的資料庫連線池,為了避免每次資料庫查詢都重新建立...