2

我正在使用多處理爲我的Python應用程序創建一個子進程。 我想在我的父進程和子進程之間共享數據。 重要的是要提到我需要異步共享,意味着子進程和父進程將在代碼運行期間更新數據。如何在Python進程之間共享數據?

執行該操作的最佳方法是什麼?

+0

你如何創建子進程? – AlokThakur

+0

p = multiprocessing.Process(target = myProcess,args =()) p.start()' – Dan

+0

它取決於您要共享的數據類型以及您正在運行的代碼。你能提供一個你想要/做什麼的最簡單的例子嗎? – CoMartel

回答

4

這是從Python文檔一個簡單的例子 -

from multiprocessing import Process, Queue 

def f(q): 
    q.put([42, None, 'hello']) 

if __name__ == '__main__': 
    q = Queue() 
    p = Process(target=f, args=(q,)) 
    p.start() 
    print q.get() # prints "[42, None, 'hello']" 
    p.join() 

您可以使用管爲好, 參考更多詳細信息 - https://docs.python.org/2/library/multiprocessing.html

+0

謝謝!如何檢查隊列或PIPE變量中是否發生了變化,並執行某些操作? – Dan

+1

隊列和管道不是可變的,但是進程之間的鏈接。你可以通過它發送和接收變量 – CoMartel

+0

@你可能想引用我共享的鏈接中的「共享內存」部分 – AlokThakur