我想管理我的线程池工作者。就像一个队列有5个工人,然后我将如何管理这些工人。假设第一个工人应该在第4个工人之后或在对工人进行一些分类后运行。
我在我的应用程序中使用ThreadPoolExecutor。它正在按预期工作,但需要管理这些工作程序,因此我的应用程序将在我对这些工作者进行排序时运 请给我一些提示或参考。
答案 0 :(得分:1)
你不应该试图管理工人。您需要管理队列。
请参阅ThreadPoolExecutor and the queue以获得详细介绍。
答案 1 :(得分:0)
使用线程池的目的是从应用程序中抽象出线程管理。如果您需要自己管理线程,那么您基本上就是说要编写自己的线程池。 在这种情况下,使用Executor不会有帮助,因为你失去了这种控制水平。 相反,您可能需要自己创建和管理线程。
答案 2 :(得分:0)
您可以自己管理线程,也可以使用并发原语(如障碍,信号量等)来控制顺序。检查java.util.concurrent包。例如,第一个工人可以等待其他工人在某个时候释放的信号量或倒计时。