多執行緒 CountDownLatch的使用

2021-10-04 11:17:48 字數 995 閱讀 4352

countdownlatch是乙個同步工具類,它允許乙個或者多個執行緒一直等待,直到其他執行緒執行完畢再執行。

countdownlatch的方法:

countdownlatch的建構函式接收乙個int型別的引數作為計數器,如果你想等待n個點完 成,這裡就傳入n。

countdownlatch latch=new countdownlatch(2);
**示例:

for(int i=0;i<5;i++)

}).start();

}system.out.println("所有執行緒都執行完畢");

}

這段**的的預期效果是在所有執行緒完成輸出之後,由主線程輸出「所有執行緒都執行完畢」。

輸出結果:

021

所有執行緒都執行完畢34

process finished with exit code 0

這是由於執行緒的執行是由cpu決定的,所以執行緒的執行也是乙個隨機的過程,所以並不能達到我們想要的預期效果。

現在用上countdownlatch

countdownlatch latch=new countdownlatch(5);

for(int i=0;i<5;i++)

}).start();

}//在上面所有執行緒執行完之前阻塞

latch.await();

system.out.println("所有執行緒都執行完畢");

執行結果:

032

14所有執行緒都執行完畢

process finished with exit code 0

這樣就符合我們的預期值

java多執行緒之CountDownLatch

countdownlatch是乙個同步工具類,用來協調多個執行緒之 間的同步。其能夠使 乙個執行緒在等待另外一些執行緒完成各自工作之後,再繼續執行。使用乙個計數器進行實現。計數器初始值為執行緒的數量。當每乙個執行緒完成自己任務後,計數器的值就會減一。當計數器的值為0時,表示所有的執行緒都已經完成了任...

多執行緒之倒計時器CountDownLatch及原理

這個工具通常用來控制線程等待,它可以讓某乙個執行緒等待直到倒計時結束再開始執行。countdownlatch是 共享模式 的。構造方法 countdownlatch int count count就是計數的次數 主要方法 void await 讓當前執行緒等待,直到倒計時結束 long getcou...

多執行緒 多執行緒原理

我們首先要知道什麼是多執行緒,說白了就是多個執行緒,執行緒是什麼呢,其實就是程序執行的途徑,那麼說道這裡我們又引入了乙個新的名字,就是程序,那麼我們來看看什麼是程序,其實我們自己也能看到,啟動電腦的任務管理器,我們就可以看到程序選項,裡面是我們電腦所有的程序,我們會發現有很多的程序.簡單地說就是程序...