Java 我可以使用什么API来等待任务完成
我需要的是一个工具/类,其行为类似于,但可以上下计数。每当一项任务被执行时,它将被计数,当一项任务完成时,它将被计数。可以有多个任务并行运行,一个线程应该等待直到没有任务执行/计数器位于0Java 我可以使用什么API来等待任务完成,java,multithreading,Java,Multithreading,我需要的是一个工具/类,其行为类似于,但可以上下计数。每当一项任务被执行时,它将被计数,当一项任务完成时,它将被计数。可以有多个任务并行运行,一个线程应该等待直到没有任务执行/计数器位于0 我查看了这个类,但我不知道它是否提供了我想要的,也许它可以用来解决这个难题?您可以使用java.util.concurrent.locks.Condition以及ReentrantLock和AtomicInteger 任务执行器的伪代码: // start executing task taskCounter
我查看了这个类,但我不知道它是否提供了我想要的,也许它可以用来解决这个难题?您可以使用
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();
您应该使用中讨论过的工具。此问题似乎与主题无关,因为您请求的是第三方工具。您可以将线程存储在一个数组中,并加入它们,以确保它们在退出之前全部完成。你可以用它来获得结果,也可以完全做其他的事情。你使用的是什么设计,你被困在哪里?