我可以使用什么API来等待任务的完成

时间:2014-02-28 15:18:14

标签: java multithreading

我需要的是一个像CoundDownLatch一样的工具/类,但可以上下计数。每当任务执行时,它都会计时,当任务完成时,它会倒计时。可以有多个任务并行运行,一个线程应该等到没有任务执行/计数器为0。

我查看了Phaser课程,但我不知道它是否提供了我想要的东西,也许它可以用来解决这个难题?

2 个答案:

答案 0 :(得分:1)

您可以将java.util.concurrent.locks.ConditionReentrantLockAtomicInteger一起使用。

任务执行者的伪代码:

// start executing task
taskCounter.incrementAndGet();
// execute task
...
// stop executing task
if (taskCounter.decrementAndGet() == 0) {
    condition.signal();
}

服务员线程的伪代码:

condition.await();

答案 1 :(得分:0)

相关问题