我想要做的基本上是启动新线程,将它们添加到队列中,然后在出队时执行其余代码。我不确定将它们添加到队列的最佳方法是什么,以及如何在某个点暂停线程并在它们出队时通知它们。以前,我实际上并没有在Java中做太多并发编程。任何帮助或建议,将不胜感激!谢谢

最佳答案

您可以使用ThreadPoolExecutor,基本上是根据多个可自定义规则创建线程池。

并且要确保所有线程在处理其余代码之前都已完成各自的工作,您只需调用ThreadPoolExecutorawaitTermination方法,然后调用最终ThreadPoolExecutorshutdown方法。

您还可以在调用notify之后发送notifyAll/awaitTermination,以唤醒其他一些与结果相关的线程。

一个示例写在 ExecutorService documentation(由ThreadPoolExecutor实现)中。

09-11 18:37
查看更多