1. 程式人生 > >判斷執行緒池所有任務是否執行完畢

判斷執行緒池所有任務是否執行完畢

newFixedThreadPool

建立一個固定大小的執行緒池。

shutdown():用於關閉啟動執行緒,如果不呼叫該語句,jvm不會關閉。

awaitTermination():用於等待子執行緒結束,再繼續執行下面的程式碼。該例中我設定一直等著子執行緒結束。

public class Test {   
  
    public static void main(String[] args) throws IOException, InterruptedException {   
        ExecutorService service = Executors.newFixedThreadPool(2);   
        for (int i = 0; i < 4; i++) {   
            Runnable run = new Runnable() {   
                @Override  
                public void run() {   
                    System.out.println("thread start");   
                }   
            };   
            service.execute(run);   
        }   
        service.shutdown();   
        service.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);   
        System.out.println("all thread complete");   
    }   
}