執行緒池簡單介紹

2021-10-07 17:14:04 字數 792 閱讀 5112

執行緒池:

(1)fixedthreadpool:可重用固定執行緒數的執行緒池(2)singlethreadexecutor:單個worker執行緒的executor(3)cachedthreadpool:根據需要建立執行緒的執行緒池

- corepoolsize為0,maximumpoolsize是無界的,為integer.max_value,因此只要有任務就會無限地建立執行緒,極端情況下會導致頻繁的上下文切換,導致效能降低;

- 阻塞佇列採用synchronousqueue,這是沒有容量的阻塞佇列,在乙個執行緒插入的時候,必須等待另乙個執行緒移除,才能從插入的地方返回;

- keepalivetime為60,表示空閒的執行緒會等待60s。

(4)scheduledthreadpoolexecutor:可延遲執行的執行緒池,可以執行週期性任務。

- 採用無界阻塞佇列delayqueue,存放scheduledfuturetask(三個重要引數:具體執行時間、被加入到執行緒池的序號、間隔時間)。delayqueue封裝了priorityqueue(將任務排序,time小的放在前面先被執行)

執行緒從delayqueue中獲取到期的任務scheduledfuturetask,執行該任務,如果是週期性任務,那麼將scheduledfuturetask重新設定下次執行的時間,再加入到delayqueue中。

- delayqueue是無界佇列,因此maximumpoolsize無意義,傳入corepoolsize來指定多個後台執行緒。

執行緒池介紹

1.定義 執行緒池是一種多執行緒處理形式,處理過程中將任務新增 到佇列,然後在建立執行緒後自動啟動這些任務。2.作用 執行緒池的作用是限制系統中執行執行緒的數量。根據系統的環境情況,可以手動或是自動設定執行緒數量,達到執行的最佳效果。既不會浪費系統資源,還避免了系統擁擠。用執行緒池控制線程的數量,其...

執行緒池介紹

建立執行緒池的方法 1 使用jdk1.5自帶的executors框架建立執行緒池。executors框架提供了4種執行緒池的建立方法 public static executorservice newfixedthreadpool int nthreads 特點 1 執行緒池的核心執行緒數和最大執行...

執行緒池的介紹

構造相關的介紹 阻塞佇列,如果blockingqueue是空的,從blockingqueue取東西的操作將會被阻斷進入等待狀態,直到blockingqueue進了東西才會被喚醒,同樣,如果blockingqueue是滿的,任何試圖往裡存東西的操作也會被阻斷進入等待狀態,直到blockingqueue...