gpt4 book ai didi

java - 如何处理可能创建新工作项的多个工作线程

转载 作者:行者123 更新时间:2023-12-04 06:21:09 24 4
gpt4 key购买 nike

我有一个包含工作项目的队列,我希望多个线程在这些项目上并行工作。 处理工作项时,可能会产生新的工作项。 我遇到的问题是我找不到如何确定我是否完成的解决方案。 worker 看起来像这样:

public class Worker implements Runnable {
public void run() {
while (true) {
WorkItem item = queue.nextItem();
if (item != null) {
processItem(item);
}
else {
// the queue is empty, but there may still be other workers
// processing items which may result in new work items
// how to determine if the work is completely done?
}
}
}
}

这实际上似乎是一个非常简单的问题,但我不知所措。实现它的最佳方法是什么?

谢谢

澄清:
一旦没有工作线程正在处理项目,工作线程就必须终止,但只要其中至少有一个仍在工作,它们就必须等待,因为这可能会产生新的工作项目。

最佳答案

使用允许您等待所有任务完成的 ExecutorService 怎么样:ExecutorService, how to wait for all tasks to finish

关于java - 如何处理可能创建新工作项的多个工作线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6548499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com