四種執行緒池

2021-08-14 02:15:56 字數 768 閱讀 4011

其他執行緒池

核心執行緒

執行緒池大小

佇列策略

newcachedthreadpool

integer.max_value

synchronousqueue

newfixedthreadpool

建立時可以設定引數

建立時可以設定引數

linkedblockingqueue

newscheduledthreadpool

建立時可以設定引數

integer.max_value

delayedworkqueue

newsinglethreadexecutor

linkedblockingqueue

synchronousqueue

:直接提交,也就是所有任務不進入佇列去等待。此時

執行緒數小於核心執行緒就增加,多於或等於核心執行緒數時,還是增加執行緒,最大為執行緒池中的最大允許。超出就拒絕。

linkedblockingqueue:無界佇列

此時超過核心執行緒後的任務全部加入佇列等待,系統最多只能執行核心執行緒數量的執行緒。這種方法相當於控制了併發的執行緒數量。

delayedworkqueue:如果不是重複的任務,那任務從 delayedworkqueue 取出之後執行完了就結束了。如果是重複的任務,那在執行結束前會重置執行時間並將自己重新加入到delayedworkqueue中。

四種執行緒池

threadpoolexecutor的引數 int coresize,核心執行緒 int maxsize,最大執行緒 long time,空閒執行緒超時時間,超時後銷毀 timeunit 空閒時間單位 blockingqueue taskqueue,存放任務的佇列,threadfactory thr...

android四種執行緒池

cachedthreadpool 可快取的執行緒池,如果執行緒池有空閒執行緒則復用空閒執行緒,如沒有空閒執行緒則建立執行緒 執行緒數沒有限制 執行緒執行超時則銷毀 引數部分看原始碼也很簡單 fixedthreadpool 有執行緒數量限制,如果執行緒數小於最大執行緒數,則無論有沒有空閒執行緒都會建立...

四種常見執行緒池

int size 3 快取執行緒池,執行緒池的大小由jvm決定,如果有空閒執行緒會 executors.newcachedthreadpool 單執行緒執行緒池,可保證任務執行的順序就是任務提交的順序 executors.newsinglethreadexecutor 固定大小執行緒池 服務端推薦使...