python - 使用多处理修改全局变量

标签 python global-variables multiprocessing

我想通过附加一些并行工作的函数生成的项目来修改列表。像这样的事情:

import multiprocessing
my_list=[]

def f(x):
    global my_list
    my_list.append(x)

for i in range(6):
    p = multiprocessing.Process(target=f, args=(i,))
    jobs.append(p)
    p.start()

for job in jobs:
    job.join()

我希望看到类似的内容:

In : my_list
Out: [0,1,2,3,4,5]

但是输出是一个空列表:

In : my_list
Out: []

您知道为什么会发生这种情况以及如何调整代码以使其修改全局变量吗?

最佳答案

我认为您需要使用多处理模块中定义的数据结构而不是标准列表:https://docs.python.org/2/library/multiprocessing.html#sharing-state-between-processes

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

相关文章:

python - 在指定的时间戳切片 pandas.Series

javascript - 声明不带 var 关键字的变量

multithreading - 单线程进程是否只包含一个线程?

Python - 多处理模块的动态使用

python - 如何使用多处理创建套接字对象并将其传递回父进程

python - 在 Python 的列表中查找子组中的公共(public)字符串

python - 如何在 Python 中从 OS X 上的标准输入返回字符?

python - while循环,永远运行或倒计时

ios - 在 Swift/iOS 中声明全局类实例是否常见/可以

c# - 如何在 WPF 中保存全局应用程序变量?