我有一个 multiprocessing.Manager
对象,它包含一个 multiprocessing.Queue
以管理我想让一组进程完成的所有工作。我想知道队列中剩余元素的数量,想知道如何做到这一点?
Python内置的 len()
函数不起作用。
我有一个 multiprocessing.Manager
对象,它包含一个 multiprocessing.Queue
以管理我想让一组进程完成的所有工作。我想知道队列中剩余元素的数量,想知道如何做到这一点?
Python内置的 len()
函数不起作用。
multiprocessing.Queue
,请尝试使用 qsize()
方法来处理 multiprocessing.Queue
对象,但是需要注意:
qsize()
返回队列的大约大小。由于多线程/多进程语义,这个数字不可靠。
请注意,在类似Mac OS X这样的Unix平台上,此操作可能会引发NotImplementedError。
NotImplementedError
的一种方法是定义自己的队列类,并允许使用 .qsize()
方法。以下是 Python3 中的一个可行示例:https://gist.github.com/FanchenBao/d8577599c46eab1238a81857bb7277c9 - Fanchen Bao