自定義執行緒池的實踐

2021-09-12 19:28:54 字數 963 閱讀 2697

/**

* 自定義執行緒池

*/public class userdefinedthread catch (interruptedexception e)

system.out.println("執行緒"+a+"執行完畢");

});}

}//定義執行緒工廠

static class definethreadfactory implements threadfactory

@override

public thread newthread(runnable r)

//當前執行緒池編號

private static final atomicinteger poolnumber = new atomicinteger(1);

//當前執行緒組

private final threadgroup group;

//當前執行緒編號

private final atomicinteger threadnumber = new atomicinteger(1);

//當前執行緒名

private final string nameprefix;

}//定義拒絕策略

static class definerejectedexecutionhandler implements rejectedexecutionhandler}}

執行結果:

是因為

核心執行緒數為1,最大執行緒數為2,快取隊列為100,這樣的話,當建立乙個執行緒後,就已經到達了最大執行緒數,剩下的任務將會進入快取佇列,不在建立新執行緒。

自定義執行緒池

有些時候 jdk自帶的cachedthreadpool fixedthreadpool等執行緒池完成不了我們業務的需求時 可以用threadpoolexecutorg構造自定義的執行緒池。public class usethreadpoolexecutor1 這段 會首先執行任務1,然後把2 3 4...

自定義執行緒池

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

自定義執行緒池

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