在我的程序执行过程中,启动了许多线程。线程的数量取决于用户定义的设置,但它们都使用不同的变量执行相同的方法。
在某些情况下,在执行过程中需要进行清理,其中一部分是停止所有线程,但我不希望它们立即停止,我只是设置了一个他们检查的变量来终止它们。问题是在线程停止之前最多可能有 1/2 秒。但是,我需要确保在继续清理之前所有线程都已停止。清理是从另一个线程执行的,所以从技术上讲,我需要这个线程等待其他线程完成。
我已经想到了几种方法来做到这一点,但它们似乎都过于复杂。我希望有一些方法可以等待一组线程完成。这样的东西存在吗?
谢谢。
只需一一加入:
for (Thread thread : threads) { thread.join(); }
(您需要对 做一些事情
InterruptedException
,并且您可能希望提供超时以防出现问题,但这是基本思想......)