【发布时间】:2015-08-19 13:01:23
【问题描述】:
我有两个正在运行的进程访问这样的导入模块:
import foo
def bar():
while True:
foo.a = True
def baz():
while True:
print foo.a
p1 = Process(target=bar)
p2 = Process(target=baz)
p1.start()
p2.start()
似乎每个进程都有自己的模块 foo 实例,bar() 将值更改为 True,但在 baz() 中它是 False。有什么解决方法吗?
【问题讨论】:
-
查找
queues 和pipes -
@muddyfish 只是为了交流,不是吗?
-
是的,除此之外,您不能更改非线程友好的对象。
-
Process不是指真正的进程(即具有单独的内存空间)吗?在这种情况下,预计他们有自己的模块实例。你想让我做什么?交流?在文档中,它说明了如何做到这一点(队列、管道和共享内存)。 -
@skyking 并没有真正交流,而是强制他们拥有相同的 foo 实例。或者以某种方式将其作为参数传递
标签: python python-multiprocessing