num*_*gil 5 python dictionary arguments multiprocessing
我有一个类,其中包含(大量)不同的属性,包括一些字典。当我将类的实例传递到新进程时,所有数值似乎都正确传递,但类对象中的任何字典都被清空。
这是我编写的一个简单测试来演示我的问题:
from multiprocessing import Process
class State:
a = 0
b = {}
def f(s, i):
print "f:", s.a, s.b
def main():
state = State()
state.a = 11
state.b['testing'] = 12
print "Main:", state.a, state.b
ps = []
for i in range(1):
p = Process(target=f, args=(state, i))
p.start() # Do the work
ps.append(p)
for p in ps:
p.join()
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
我期望输出是
Main: 11 {'testing': 12}
f: 11 {'testing': 12}
Run Code Online (Sandbox Code Playgroud)
但我得到
Main: 11 {'testing': 12}
f: 11 {}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6039 次 |
| 最近记录: |