自定義執行緒池

2021-07-29 19:29:31 字數 472 閱讀 6049

有些時候 jdk自帶的cachedthreadpool fixedthreadpool等執行緒池完成不了我們業務的需求時 可以用threadpoolexecutorg構造自定義的執行緒池。

public class usethreadpoolexecutor1

}這段**會首先執行任務1,然後把2 3 4放入佇列中,當任務5來到時,佇列已滿,這時候會判斷是否達到了maxsize,如果還沒到,就會新開一條執行緒給5,如果滿了,就去執行myrejected的自定義操作  

所以上述**執行順序是

run taskid =1

run taskid =5

當前被拒絕任務為:6

run taskid =2

run taskid =3

run taskid =4

值得注意的是,如果使用的是無界佇列,由於佇列永遠不會滿,所以永遠不會建立執行緒,執行緒會一直是coresize,不會達到maxsize

自定義執行緒池

建立執行緒池方法 儘管executors提供了四種執行緒池建立的方式,但為了實現某些特定的需求,可以自己建立執行緒池。如在阿里的程式設計規範使用executors建立執行緒時,一般會報錯,並提示以下資訊 執行緒池不允許使用executors去建立,而是通過threadpoolexecutor的方式,...

自定義執行緒池

自定義執行緒池建立api 執行緒池建立通過juc的介面 executor 實現,平時我們使用其實現類 threadpoolexecutor 實現自定義執行緒池。常用建構函式 public threadpoolexecutor int corepoolsize,int maximumpoolsize,...

自定義執行緒池

版本一 usr bin env python coding utf 8 import queue import threading class threadpool object def init self,max num 20 self.queue queue.queue max num for ...