在我的程序执行过程中,启动了一些线程。线程数量因用户定义的设置而异,但它们都使用不同的变量执行相同的方法。
在某些情况下,需要在执行过程中进行清理,其中一部分是停止所有线程,但我不希望它们立即停止,我只是设置一个变量供它们检查以终止它们。问题是线程停止前最多可能有 1⁄2 秒。但是,我需要确保在继续清理之前所有线程都已停止。清理是从另一个线程执行的,所以从技术上讲我需要这个线程等待其他线程完成。
我已经想到了几种方法来做到这一点,但它们似乎都过于复杂。我希望有一些方法可以等待一组线程完成。有这样的东西存在吗?
原文由 A Jackson 发布,翻译遵循 CC BY-SA 4.0 许可协议
只需将它们一一加入即可:
(你需要用
InterruptedException
做一些事情,你可能想提供一个超时以防出现问题,但这是基本的想法……)