gpt4 book ai didi

python - 全局变量和 Python 多处理

转载 作者:太空狗 更新时间:2023-10-29 16:57:30 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Python multiprocessing global variable updates not returned to parent

我正在使用一台有很多内核的计算机,为了性能优势,我真的应该使用多个内核。但是,我很困惑为什么这些代码没有达到我的预期:

from multiprocessing import Process

var = range(5)
def test_func(i):
global var
var[i] += 1

if __name__ == '__main__':
jobs = []
for i in xrange(5):
p = Process(target=test_func,args=(i,))
jobs.append(p)
p.start()

print var

还有

from multiprocessing import Pool

var = range(5)
def test_func(i):
global var
var[i] += 1

if __name__ == '__main__':
p = Pool()
for i in xrange(5):
p.apply_async(test_func,[i])

print var

我希望结果是 [1, 2, 3, 4, 5] 但结果是 [0, 1, 2, 3, 4]

在对进程使用全局变量时,我肯定遗漏了一些微妙之处。这是可行的方法还是我应该避免尝试以这种方式更改变量?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com