1:執行緒池的核心執行緒是可以重複利用的
2:當有新任務來的時候,先看看當前的執行緒數有沒有超過核心執行緒數,如果沒超過就直接新建乙個執行緒(核心執行緒)來執行新的任務,如果超過了就看看快取佇列有沒有滿,沒滿就將新任務放進快取佇列中,滿了就新建乙個執行緒(非核心執行緒)來執行新的任務,如果執行緒池中的執行緒數已經達到了指定的最大執行緒數了,那就根據相應的策略拒絕任務。
3:當快取佇列中的任務都執行完了的時候,執行緒池中的執行緒數如果大於核心執行緒數,就銷毀多出來的執行緒,直到執行緒池中的執行緒數等於核心執行緒數。此時這些執行緒就不會被銷毀了,它們一直處於阻塞狀態,等待新的任務到來。
執行緒池的核心執行緒與最大執行緒
1 當提交乙個新任務到執行緒池時首先執行緒池判斷基本執行緒池 corepoolsize 是否已滿?沒滿,建立乙個工作執行緒來執行任務。滿了,則進入下個流程 其次執行緒池判斷工作佇列 workqueue 是否已滿?沒滿,則將新提交的任務儲存在工作佇列裡。滿了,則進入下個流程 最後執行緒池判斷整個執行緒...
執行緒池設定 如何合理設定執行緒池的核心執行緒數?
當執行緒池的核心執行緒數量過大或者過小有沒影響?如何合理地設定執行緒池的核心執行緒的數量?這個是在日常開發中程式設計師在使用執行緒池時經常需要考慮的問題,下面具體介紹下。1 當執行緒池的核心執行緒數量過大或者過小的影響 當執行緒池中核心執行緒數量過大時,執行緒與執行緒之間會爭取cpu資源,這樣就會導...
執行緒池總類以及執行緒池的核心引數簡述
jdk自帶執行緒池總類 1 newfixedthreadpool建立乙個指定工作執行緒數量的執行緒池。每當提交乙個任務就建立乙個工作執行緒,如果工作執行緒數量達到執行緒池初始的最大數,則將提交的任務存入到池佇列中。2 newcachedthreadpool建立乙個可快取的執行緒池。這種型別的執行緒池...