0

我有两个线程countDownLatch设置为 1,因此,当第一个线程完成时,第二个线程应该启动。我想要做的是,当第二个完成任务时,我想从两个线程中计算出数据来做一些操作。

现在我的问题是,有没有办法知道CountDownLatch对象是否完成了任务?

更新

使用安全吗

while (latch.getcountDown()==0) {
 // do the calculations on the data processed by the two threads
}
4

2 回答 2

0

是的,当您的线程完成并且能够接受请求或特定任务时,它会在闩锁上调用countDown方法。另一方面,在您的主线程(或您的协调线程)中,阻塞闩锁上的 await 方法。

现在,每当“x”从属线程完成其任务并调用 countDown 时,主线程都知道这一点并退出等待并进行进一步处理。

于 2015-05-03T10:23:34.757 回答
0

您是否尝试过“加入”线程。而不是使用沉重的闩锁连接可能会成功。

于 2015-05-05T12:05:11.060 回答