1.阻塞佇列 體系結構
-collection
-queue
- blockqueue
重要的實現類
1.arrayblockingqueue 底層是陣列
2.linkedblockingqueue 底層是鍊錶 :預設長度是 21 億
3.synchronousqueue 裡邊只能存放乙個
2.執行緒池 核心類
executor :執行緒池根
executorservice :重要介面
threadpoolexecutor :非常重要的類
3.常見的執行緒池操作
executors.newfixedthreadpool(5) 指定大小
executors.newsinglethreadexecutor() 只能乙個執行緒
executors.newcachedthreadpool() 忙不過來多個執行緒,忙的過來單個執行緒
4.執行緒池7大引數
corepoolsize : 執行緒池中常駐的核心執行緒數
maximumpoolsize :最大執行緒數:執行緒池中同時可以執行的最大執行緒數
workqueue: 阻塞佇列
rejectedexecutionhandler:拒絕策略
threadfactory :預設工廠
keepalivetime:多餘的空閒執行緒的存活時間,當前執行緒池數量超過corepoolsize 時,當空閒時間達到keepalivetime 值時,多餘空閒執行緒會被銷毀,直到只剩下corepoolsize 個執行緒為止
5.執行緒池的拒絕策略
rejectedexecutionhandler
abortpolicy(預設):直接丟擲rejectedexecutionexception 異常阻止系統正常執行
callerrunspolicy:呼叫者執行一種呼叫機制,該策略不會丟擲異常,而是將某些任務回退到呼叫者,從而降低流量
discardoldestpolicy:拋棄佇列中等待最久的任務,然後把當前任務加入到佇列再嘗試提交任務
discardpolicy: 直接丟棄任務,不予任何處理,如果允許任務丟失,這是最好的乙個解決方案
執行緒池快速入門
谷歌封裝好的的執行緒池工具類,jdk1.5加入,內部其實是封裝了threadpoolexecutor的實現物件,可以當成是一種裝飾模式。newcachedthreadpool 建立乙個可快取的執行緒池,如果執行緒池長度超過處理需要,可靈活 空閒執行緒,若無法 則新建執行緒。newfixedthrea...
C 執行緒 入門 優化執行緒池
優化執行緒池 執行緒池從其池中的乙個執行緒開始。分配任務後,池管理器會 注入 新執行緒以應對額外的併發工作負載 最大限制 在足夠長時間的不活動之後,如果池管理器懷疑這樣做會導致更好的吞吐量,則可以 退出 執行緒。您可以通過呼叫threadpool.setmaxthreads 來設定池將建立的執行緒的...
執行緒池入門 四 Future
型別 方法說明 boolean cancel boolean mayinterruptifrunning 試圖取消對此任務的執行。vget 如有必要,等待計算完成,然後獲取其結果。vget long timeout,timeunit unit 如有必要,最多等待為使計算完成所給定的時間之後,獲取其結...