So teilen Sie eine Ergebniswarteschlange zwischen mehreren Prozessen
Bei der Arbeit mit asynchronen Arbeitsprozessen unter Verwendung des Moduls Multiprocessing apply_async ()-Funktion verwenden, ist es wichtig zu überlegen, wie eine Warteschlange sicher geteilt werden kann. Der Fehler „RuntimeError: Warteschlangenobjekte sollten nur durch Vererbung zwischen Prozessen geteilt werden“ unterstreicht die Notwendigkeit, die Warteschlange auf eine Weise zu übergeben, die Pickling-/Unpickling-Probleme verhindert.
Um dieses Problem zu beheben, können wir den multiprocessing.Manager nutzen ()-Klasse, die eine Möglichkeit bietet, Objekte zu verwalten und sie verschiedenen Arbeitern zugänglich zu machen.
<code class="python">import multiprocessing def worker(name, que): que.put("%d is done" % name) if __name__ == '__main__': pool = multiprocessing.Pool(processes=3) m = multiprocessing.Manager() q = m.Queue() workers = pool.apply_async(worker, (33, q))</code>
In diesem Beispiel erstellen wir ein Manager-Objekt (m) und verwenden es für Verwalten Sie die Warteschlange (q). Auf diese Weise erstellen wir ein gemeinsames Speichersegment, das es mehreren Prozessen ermöglicht, sicher auf die Warteschlange zuzugreifen, auch in asynchronen Szenarien.
Das obige ist der detaillierte Inhalt vonWie teile ich eine Ergebniswarteschlange zwischen mehreren Prozessen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!