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

Java 我可以使用什么API来等待任务完成,java,multithreading,Java,Multithreading,我需要的是一个工具/类,其行为类似于,但可以上下计数。每当一项任务被执行时,它将被计数,当一项任务完成时,它将被计数。可以有多个任务并行运行,一个线程应该等待直到没有任务执行/计数器位于0 我查看了这个类,但我不知道它是否提供了我想要的,也许它可以用来解决这个难题?您可以使用java.util.concurrent.locks.Condition以及ReentrantLock和AtomicInteger 任务执行器的伪代码: // start executing task taskCounter

我需要的是一个工具/类,其行为类似于,但可以上下计数。每当一项任务被执行时,它将被计数,当一项任务完成时,它将被计数。可以有多个任务并行运行,一个线程应该等待直到没有任务执行/计数器位于0


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

您可以使用
java.util.concurrent.locks.Condition
以及
ReentrantLock
AtomicInteger

任务执行器的伪代码:

// start executing task
taskCounter.incrementAndGet();
// execute task
...
// stop executing task
if (taskCounter.decrementAndGet() == 0) {
    condition.signal();
}
服务线程的伪代码:

condition.await();

您应该使用中讨论过的工具。

此问题似乎与主题无关,因为您请求的是第三方工具。您可以将线程存储在一个数组中,并加入它们,以确保它们在退出之前全部完成。你可以用它来获得结果,也可以完全做其他的事情。你使用的是什么设计,你被困在哪里?