執行緒池入門

2022-08-24 20:36:13 字數 1112 閱讀 3220

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 如有必要,最多等待為使計算完成所給定的時間之後,獲取其結...