Java - 等待所有线程完成后初始化活动

时间:2012-04-10 12:44:43

标签: java

我有几个并行执行活动的线程。所有线程完成后,我将不得不继续进行后续活动。有没有办法实现这个目标?

5 个答案:

答案 0 :(得分:5)

你应该看一下join() method in the Thread class。连接可用于允许一个线程等待另一个线程完成。它也被重载以允许指定等待另一个线程完成的时间。 Joins are discussed as part of the Java Tutorial on Concurrency

答案 1 :(得分:3)

对于所有线程都执行thread.join()。

答案 2 :(得分:3)

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#join()

您可以使用Thread.join()来等待线程完成。有关更多信息,请查看Javadoc。

答案 3 :(得分:2)

我认为使用http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/CountDownLatch.html实际上优于Thread.join(),因为它应该更好地扩展。

答案 4 :(得分:2)

从概念上讲,解决问题的方法是创建一个observer object,它将被您运行的每个线程引用。一旦线程完成,它通知观察者它执行了他的任务。每次Observer收到这种通知时,它会递增一个计数器,一旦计数器达到线程数,这意味着所有线程都完成了。然后观察者可以开始最后的任务。

这就是理论。如果你想要有一个内置的java类:CountDownLatch