我想要做的基本上是启动新线程,将它们添加到队列中,然后在出队时执行其余代码。我不确定将它们添加到队列的最佳方法是什么,以及如何在某个点暂停线程并在它们出队时通知它们。以前,我实际上并没有在Java中做太多并发编程。任何帮助或建议,将不胜感激!谢谢
最佳答案
您可以使用ThreadPoolExecutor,基本上是根据多个可自定义规则创建线程池。
并且要确保所有线程在处理其余代码之前都已完成各自的工作,您只需调用ThreadPoolExecutor
的awaitTermination
方法,然后调用最终ThreadPoolExecutor
的shutdown
方法。
您还可以在调用notify
之后发送notifyAll
/awaitTermination
,以唤醒其他一些与结果相关的线程。
一个示例写在 ExecutorService
documentation(由ThreadPoolExecutor
实现)中。