1. 程式人生 > >ExecutorService的 isTerminated()實現子執行緒先執行完後再推出主執行緒

ExecutorService的 isTerminated()實現子執行緒先執行完後再推出主執行緒

/**
 * 先讓所有的子執行緒執行完,再執行主執行緒*/

public class Main {

	public static void main(String[] args) {
		
		ExecutorService executorService=Executors.newFixedThreadPool(10);
		
		for (int i = 0; i < 10; i++) {
			
			Test test=new Test();
			executorService.execute(test);
		}
		
		executorService.shutdown();//關閉執行緒池
		//判斷是否所有的執行緒已經執行完
        while (!executorService.isTerminated()) {
			
		}
        
        System.out.println("All is finished!");
//        System.exit(0);//退出
	}

}
public class Test implements Runnable{

	@Override
	public void run() {
		try {
			Thread.sleep(2000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println(""+Thread.currentThread().getId());
		
	}

}