如何阻止直到阻塞队列为空?
2022-09-01 17:27:37
我正在寻找一种方法来阻止,直到 a 为空。BlockingQueue
我知道,在多线程环境中,只要有生产者将项目放入,就会出现队列变为空的情况,并且在几纳秒后它就充满了项目。BlockingQueue
但是,如果只有一个创建者,则它可能希望等待(并阻止)直到队列停止将项目放入队列后队列为空。
Java/Pseudocode:
// Producer code
BlockingQueue queue = new BlockingQueue();
while (having some tasks to do) {
queue.put(task);
}
queue.waitUntilEmpty(); // <-- how to do this?
print("Done");
你有什么想法吗?
编辑:我知道包装和使用额外的条件可以解决问题,我只是在问是否有一些预制的解决方案和/或更好的替代方案。BlockingQueue