我有一个队列,其中包含我希望一组进程执行的所有工作。我想获得此队列中剩余的元素数量,并想知道如何做到这一点? len 函数似乎不起作用,虽然我可以迭代队列获取每个元素并将其重新打开,直到我完全循环,我宁愿避免这种因为畏缩编码的原因。
答案 0 :(得分:7)
如果您正在谈论的队列是multiprocessing.Queue
,请尝试对multiprocessing.Queue
个对象使用qsize()
方法,但要小心:
qsize()
返回队列的大致大小。因为 多线程/多处理语义,这个数字不可靠。
请注意,这可能会在Unix平台上引发NotImplementedError Mac OS X,其中未实现sem_getvalue()。