【发布时间】:2014-05-08 16:29:48
【问题描述】:
我有一个对象字典,我想使用 multiprocessing 包填充这个字典。这段代码并行“运行”多次。
Data=dict()
for i in range:
Data[i]=dataobj(i) #dataobj is a class I have defined elsewhere
proc=Process(target=Run, args=(i, Data[i]))
proc.start()
“运行”在哪里进行一些模拟,并将输出保存在 dataobj 对象中
def Run(i, out):
[...some code to run simulations....]
out.extract(file)
我的代码创建一个对象字典,然后并行修改该字典中的对象。这可能吗,还是每次修改共享字典中的对象时都需要获取锁?
【问题讨论】:
-
锁增加了很少的开销,所以你可以肯定地使用它。关于字典的操作:stackoverflow.com/a/6955678/1444854,对象没有任何线程安全性。
标签: python dictionary multiprocessing