gpt4 book ai didi

python - 使用多处理时未在 python 中更新全局变量

转载 作者:行者123 更新时间:2023-11-28 18:19:58 24 4
gpt4 key购买 nike

我有以下简单的代码

from multiprocessing import Pool
x = []


def func(a):
print(x,a)


def main():
a = [1,2,3,4,5]
pool = Pool(1)
global x
x = [1,2,3,4]
ans = pool.map(func,a)
print(x)

它给了我结果

[] 1
[] 2
[] 3
[] 4
[] 5
[1, 2, 3, 4]

我希望结果反射(reflect)全局变量 x 的变化。这似乎在池调用之前未更新全局变量 x 中的更改。请问这是什么原因造成的?

最佳答案

所以我按照广胜佐的建议去做了,可惜结果并不理想。深入研究后,我意识到问题不是因为脚本,而是因为操作系统。

在windows中,没有os.fork() ,因此不会复制全局变量的变化。但是,在 Unix 机器上,该脚本运行良好。

关于python - 使用多处理时未在 python 中更新全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45695400/

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