您说的那一刻
p.start(),是一个独立的过程从主要过程中分叉出来。复制所有变量值。因此,主进程具有的一个副本
p,而分叉进程具有的单独副本
p。该
Worker修改的派生进程的副本
p.value,但主要进程的
p.value仍然是
None。
在流程之间共享对象有很多方法。在这种情况下,也许最简单的方法是使用mp.Value:
import multiprocessing as mpclass Worker(mp.Process): def __init__(self): print "Init" mp.Process.__init__(self) self.num = mp.Value('d', 0.0) def run(self): print "Running" self.num.value = 1p = Worker()p.start()p.join()print p.num.value请注意,的
mp.Value默认值为
0.0。不能设置为
None。



