標籤:main stack size 線程池 get read ble div cond
代碼塊:
1 public class test { 2 public static void main(String[] args) { 3 test t = new test(); 4 ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 200, 5 TimeUnit.MILLISECONDS, new LinkedBlockingDeque<Runnable>(5)); 6 7 for (int i = 1; i < 16; i++) { 8 t.testRun(executor, i); 9 System.out.println("-- 線程池中的線程數 :" + executor.getPoolSize() +10 " -- 對列中的線程數 :" + executor.getQueue().size() +11 " -- 已執行完的線程數 :" + executor.getCompletedTaskCount());12 }13 executor.shutdown();14 while (true) {15 if (executor.isTerminated()) {16 System.out.println("* ------ * 所有線程已結束");17 break;18 }19 try {20 Thread.sleep(100);21 } catch (InterruptedException e) {22 e.printStackTrace();23 }24 }25 26 }27 28 public void testRun(ThreadPoolExecutor executor, final int a) {29 30 executor.execute(new Thread(new Runnable() {31 @Override32 public void run() {33 System.out.println("線程 開始 ,線程 :" + a);34 try {35 Thread.sleep(a * 1000);36 } catch (InterruptedException e) {37 e.printStackTrace();38 }39 System.out.println("線程 結束,線程 : " + a);40 }41 }, "name"));42 43 }44 }運行結果:
線程 開始 ,線程 :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* ------ * 所有線程已結束
View Code
Java並發編程:線程池 - 執行個體