[英]python multiprocessing pass dict from child process back to parent
我有一個子進程函數(稱為parseContents),使用以下代碼調用它:
def main():
p = Process(target=parseContents, args=(event.name,))
p.start()
p.join()
利用多處理模塊和Queue方法,我如何將一個變量從parseContents傳遞回main,以便在p.join()行之后使用?
我讀過我會用的:
from multiprocessing import Queue
queue = Queue()
queue.put( myVar ) #obviously this would be inside parseContents()
print queue.get( myVar ) #obviously this would be inside main()
在我的main中調用它后,是否需要將'queue'變量/實例傳遞給我的parseContents函數,以便子進程知道隊列?
在上面的main():
段中構造的父進程和子進程之間的多處理隊列的正確實現是什么?
要以這種方式使用Queue,您必須在main()
實例化它並將其作為參數傳遞給parseContents
。 一旦這樣做,您應該能夠使用您擁有的代碼(在正確的位置)將項目從子進程傳遞到父進程。
Python文檔警告說,如果Queue不為空,則不應嘗試加入子進程,因此在調用join
之前,請確保將所有項目從隊列中取出。 實際上,您應該能夠在不調用join
情況下運行代碼,因為queue.get
將一直等到Queue中有一個項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.