我正在使用 Executor 框架使用线程池(即 newFixedThreadPool)启动多个线程。我使用 threadpool.submit(aThread) 提交要由线程池执行的作业,这工作正常,但是我需要确定所有线程何时完成,以便我可以继续其他处理。我查看了使用 Future.get() 阻塞直到线程完成这里的问题是它阻塞直到结果可用。我还研究了使用连续调用 isTerminated() 方法,然后在发出关闭后休眠以检查所有线程是否已完成,但这对我来说似乎并不整洁。还有另一种更清洁的方法吗?此外,如果任何一个线程中出现异常,我希望能够终止所有其他正在运行的线程,并阻止池中任何排队的线程启动。执行此操作的最佳机制是什么?
期待听到您的回复
TIA