我在两个文件中编写了代码。为了指出问题,我正在为代码做总结
first.py 中的
def sim(self, x, y, num):
sim = 0.999999
num.value = sim
second.py
num = Value('d', 0.0)
p = Process(target=first.sim, args=(int(d * (k-1)), txtlen, num))
processes.append(p)
p.start()
print num.value
我希望输出应为0.999999
。但它只返回0.0
。我该如何解决这个问题?有人可以帮忙吗?
答案 0 :(得分:2)
我使用此代码似乎有效:
from multiprocessing import Process, Value
class First(object):
def sim(self, x, y, num):
sim = 0.999999
num.value = sim
num = Value('d', 0.0)
first = First()
p = Process(target=first.sim, args=(0, 0, num))
p.start()
p.join()
print num.value
好像您的流程无法完成,所以在访问p.join()
之前必须确保使用num.value
完成