我需要在超时的情况下加入多个线程。像Thread.join(long millis)
这样的东西,但是对于多个线程。
我发现了一些关于加入多个线程的帖子,但没有关于加入超时的帖子。
我正在改变的代码是:
for (Thread thread : threads) {
thread.join(units.toMillis(timeout));
}
但这明显等待每个线程分别等待threads.length * timeout
。我想完全等待所有线程timeout
。
这样做的正确方法是什么?
答案 0 :(得分:1)
听起来你正试图用超时来实现障碍。你试过这个: http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CyclicBarrier.html