ExecutorService線程池創建后如果需要數據完成后繼續執行主線程。
網上查詢出的答案都是死循環用isTerminated方法判斷是否已完成所有線程,多次嘗試這種方法都無法關閉,主線程就停了不往下執行。原因:isTerminated方法執行前必須使用shutdown方法否則無法為true。
1 ExecutorService exe = Executors.newFixedThreadPool(50);// 設置線程池 2 exe.shutdown();// 禁止新建線程,老線程繼續執行 3 while (true) { 4 if (exe.isTerminated()) { 5 break; 6 } 7 Thread.sleep(1000); 8 }
