3

AutoProxy エラーのため、マルチプロセッシング キューの要素を抽出できません。

削除せずにキューの要素を抽出する通常の方法は、 - list(q.queue) where q-> queue object です。MP キューでは機能しないようです。

import multiprocessing as mp

q = mp.Manager().Queue(maxsize=20)

list(q)
TypeError: 'AutoProxy[Queue]' object is not iterable
list(q.queue)
AttributeError: 'AutoProxy[Queue]' object has no attribute 'queue'
list(q.queue.queue)
AttributeError: 'AutoProxy[Queue]' object has no attribute 'queue'

私が使用すると同じことが起こります:

q = mp.Queue(maxsize=20)

q.get() を実行せずにキュー要素を抽出できるようにしたいと考えており、複数のプロセスで使用されている共有キューを引き続き使用したいと考えています。

4

1 に答える 1

0

マルチプロセッシングのキュー用..

q = Queue()
q.put(2)
q.put(4)

elements = list()
while q.qsize():
    elements.append(q.get())
print(elements)
于 2020-09-11T22:22:29.087 に答える