public class test
executor.shutdown();
while (true)
try catch (interruptedexception e) }}
public void testrun(threadpoolexecutor executor, final int a) catch (interruptedexception e)
system.out.println("執行緒 結束,執行緒 : " + a);
}}, "name"));
}}
執行緒 開始 ,執行緒 :1
-- 執行緒池中的執行緒數 :1 -- 對列中的執行緒數 :0 -- 已執行完的執行緒數 :0
-- 執行緒池中的執行緒數 :2 -- 對列中的執行緒數 :0 -- 已執行完的執行緒數 :0
執行緒 開始 ,執行緒 :2
-- 執行緒池中的執行緒數 :3 -- 對列中的執行緒數 :0 -- 已執行完的執行緒數 :0
執行緒 開始 ,執行緒 :3
-- 執行緒池中的執行緒數 :4 -- 對列中的執行緒數 :0 -- 已執行完的執行緒數 :0
執行緒 開始 ,執行緒 :4
-- 執行緒池中的執行緒數 :5 -- 對列中的執行緒數 :0 -- 已執行完的執行緒數 :0
執行緒 開始 ,執行緒 :5
-- 執行緒池中的執行緒數 :5 -- 對列中的執行緒數 :1 -- 已執行完的執行緒數 :0
-- 執行緒池中的執行緒數 :5 -- 對列中的執行緒數 :2 -- 已執行完的執行緒數 :0
-- 執行緒池中的執行緒數 :5 -- 對列中的執行緒數 :3 -- 已執行完的執行緒數 :0
-- 執行緒池中的執行緒數 :5 -- 對列中的執行緒數 :4 -- 已執行完的執行緒數 :0
-- 執行緒池中的執行緒數 :5 -- 對列中的執行緒數 :5 -- 已執行完的執行緒數 :0
-- 執行緒池中的執行緒數 :6 -- 對列中的執行緒數 :5 -- 已執行完的執行緒數 :0
執行緒 開始 ,執行緒 :11
-- 執行緒池中的執行緒數 :7 -- 對列中的執行緒數 :5 -- 已執行完的執行緒數 :0
執行緒 開始 ,執行緒 :12
-- 執行緒池中的執行緒數 :8 -- 對列中的執行緒數 :5 -- 已執行完的執行緒數 :0
執行緒 開始 ,執行緒 :13
-- 執行緒池中的執行緒數 :9 -- 對列中的執行緒數 :5 -- 已執行完的執行緒數 :0
執行緒 開始 ,執行緒 :14
-- 執行緒池中的執行緒數 :10 -- 對列中的執行緒數 :5 -- 已執行完的執行緒數 :0
執行緒 開始 ,執行緒 :15
執行緒 結束,執行緒 : 1
執行緒 開始 ,執行緒 :6
執行緒 結束,執行緒 : 2
執行緒 開始 ,執行緒 :7
執行緒 結束,執行緒 : 3
執行緒 開始 ,執行緒 :8
執行緒 結束,執行緒 : 4
執行緒 開始 ,執行緒 :9
執行緒 結束,執行緒 : 5
執行緒 開始 ,執行緒 :10
執行緒 結束,執行緒 : 6
執行緒 結束,執行緒 : 7
執行緒 結束,執行緒 : 11
執行緒 結束,執行緒 : 8
執行緒 結束,執行緒 : 12
執行緒 結束,執行緒 : 13
執行緒 結束,執行緒 : 9
執行緒 結束,執行緒 : 14
執行緒 結束,執行緒 : 15
執行緒 結束,執行緒 : 10
* ------ * 所有執行緒已結束
java併發程式設計 執行緒池
降低資源消耗 提高響應速度 t1 執行緒建立的時間 t2 工作任務執行額時間 t3 執行緒銷毀時間 提高了執行緒的可管理性 corepoolsize 核心執行緒數 如果執行的執行緒數大於核心執行緒數,則會先進入到阻塞佇列裡 maxinumpoolsize 允許最大執行緒數 執行緒池所建立的執行緒數一...
Java 執行緒池併發程式設計詳解
本博文分為6個部分 1.bizprocessor 具體的事務處理邏輯,被多執行緒呼叫。2.bizasynctaskcall 實現callable介面,用於組裝futuretask。3.bizfuturetask 代表乙個非同步計算任務,用於提交任務非同步執行,並返回計算結果。4.bizexecuto...
java併發程式設計學習11 執行緒池
執行緒池 為了節省系統在多執行緒併發時不斷建立和銷毀執行緒帶來的額外開銷,就需要引入執行緒池。執行緒池的基本功能就是進行執行緒的復用。當系統接受一 個提交的任務時,並不會著急去建立乙個新的執行緒去執行這個任務,而是去執行緒池中查詢是否有空閒的執行緒。若有 直接使用這個執行緒。若沒有 根據配置的策略執...