CountDownLatch倒計數器併發工具

2021-09-25 16:26:03 字數 669 閱讀 5123

countdownlatch:用於多執行緒並行執行

例:

@slf4j

public class countdownlatchdemo catch (interruptedexception e) finally

});}

//要求主線程需等所有執行緒準備好後,並行執行完畢後才能繼續執行

countdownlatch.await();

//關閉執行緒池

threadpool.shutdown();

log.debug("main thread end");

}}

threadpoolmanager.threadpool為自寫的乙個執行緒池工具,**詳情

輸出:

1 runing 1564386456075

2 runing 1564386456076

3 runing 1564386456076

2 run end 1564386457080

1 run end 1564386457080

3 run end 1564386457080

main thread end

各執行緒執行順序可能與輸出不一致,但是主線程必須在countdownlatch倒計數器執行為0時才會繼續執行。

注意:

多執行緒 CountDownLatch

countdownlatch 允許乙個或多個執行緒等待其他執行緒完成操作。應用場景 假如有這樣乙個需求,當我們需要解析乙個excel裡多個sheet的資料時,可以考慮使用多執行緒,每個執行緒解析乙個sheet裡的資料,等到所有的sheet都解析完之後,程式需要提示解析完成。在這個需求中,要實現主線程...

執行緒同步 CountDownLatch

應用場景 有乙個任務想要往下執行,但必須要等到其他的任務執行完畢後才可以繼續往下執行。假如我們這個想要繼續往下執行的任務呼叫乙個countdownlatch物件的await 方法,其他的任務執行完自己的任務後呼叫同乙個countdownlatch物件上的countdown 方法,這個呼叫await ...

CountDownLatch 併發測試

countdownlatch,乙個同步輔助類,在完成一組正在其他執行緒中執行的操作之前,它允許乙個或多個執行緒一直等待。主要方法 public countdownlatch int count public voidcountdown public voidawait throws interrup...