我正在使用Executor框架来启动多个线程,使用线程池即newFixedThreadPool。我使用threadpool.submit(aThread)将要执行的作业提交给线程池,这很好用,但是我需要确定何时所有线程都完成,以便我可以继续处理其他事情。我考虑使用Future.get(),它会阻塞直到线程完成,但问题在于它会一直阻塞直到结果可用。我还尝试不断调用isTerminated()方法并在发出关闭指令后休眠以检查是否所有线程都已完成,但这对我来说并不简洁。有没有另一种更干净的方法?此外,如果任何一个线程引发异常,我希望能够终止所有其他正在运行的线程,并停止池中排队的任何线程开始运行。最好的机制是什么?期待您的回复。谢谢!