我正在使用Queue
实现Python Thread
。我需要一种方法来获取当前队列中的项目总数(我可以通过queue.qsize()
获得)和未完成任务的数量。基本上我需要计算正在处理/需要处理的所有项目。 Python Queue documentation提及以下内容:
每当项目添加到队列时,未完成任务的数量就会增加。每当消费者线程调用task_done()以指示该项目已被检索并且其上的所有工作都已完成时,计数就会下降。当未完成任务的数量降至零时,join()取消阻塞。
但它没有提供有关如何访问该计数的见解。提前谢谢!
答案 0 :(得分:7)
我很惊讶它没有在文档中提及但Queue
个对象具有unfinished_tasks
属性:
>>> x = queue.Queue()
>>> x.unfinished_tasks
0
>>> x.put("test")
>>> x.unfinished_tasks
1
由于文档中没有提及它,因此不能保证作为公共接口的一部分,并且可能不是线程安全的。