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