線程池判斷是否執(zhí)行完畢

方法一、
使用shutdown方法,該方法會讓線程池不在繼續(xù)接收新的線程,直到?jīng)]有線程后通過循環(huán)判斷是否所有線程都執(zhí)行完畢

public static void main(String[] args) throws ExecutionException, InterruptedException {
        ExecutorService exec = Executors.newFixedThreadPool(4);
        for (int i = 0;i<10000;i++) {
            exec.execute(() -> System.out.println("aaaaaaaaaaaaaaaaaaaaaa"));
        }
        exec.shutdown();
        while(true){
            if(exec.isTerminated()){
                System.out.println("所有的子線程都結(jié)束了!");
                break;
            }
            Thread.sleep(1000);
        }
    }

方法二、
通過shutdown將線程池不在接收新的線程,然后使用awaitTermination通過返回值true判斷線程全部執(zhí)行完成

public static void main(String[] args) throws ExecutionException, InterruptedException {
        for (int i = 0;i<10000;i++) {
            exec.execute(() -> System.out.println("aaaaaaaaaaaaaaaaaaaaaa"));
        }
         exec.shutdown();
//請求關(guān)閉、發(fā)生超時或者當前線程中斷,無論哪一個首先發(fā)生之后,都將導致阻塞,直到所有任務(wù)完成執(zhí)行。
         boolean flag = exec.awaitTermination(1, TimeUnit.MINUTES);
        if(flag){
            System.out.println("結(jié)束了aaaa");
        }
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容