簡體   English   中英

python多處理將子進程中的di​​ct傳遞回父進程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM