在Python的Multiprocessing库中获取Manager.Queue的长度

时间:2017-01-31 07:58:16

标签: python python-2.7 python-multiprocessing

我有一个队列,其中包含我希望一组进程执行的所有工作。我想获得此队列中剩余的元素数量,并想知道如何做到这一点? len 函数似乎不起作用,虽然我可以迭代队列获取每个元素并将其重新打开,直到我完全循环,我宁愿避免这种因为畏缩编码的原因。

1 个答案:

答案 0 :(得分:7)

如果您正在谈论的队列是multiprocessing.Queue,请尝试对multiprocessing.Queue个对象使用qsize()方法,但要小心:

  

qsize()

     

返回队列的大致大小。因为   多线程/多处理语义,这个数字不可靠。

     

请注意,这可能会在Unix平台上引发NotImplementedError   Mac OS X,其中未实现sem_getvalue()。