如何避免在进程间复制非全局的numpy数组?

1 投票
1 回答
857 浏览
提问于 2025-04-16 20:51

我看过“ Python多进程中共享只读数据是否会被复制到不同进程? ”这篇文章,但里面提到的数组是全局的。那有没有可能对局部数组做同样的事情呢?

1 个回答

-1

我觉得不是这样,不过你可以把东西保存到一个模块的变量里。如果你在分叉(fork)之前这样做(并且你不是在Windows上),应该没问题。

比如说:

import mymodule

def somefunc(parameter):
    # do something with mymodule.var

# load/process local data
# save to module variable
mymodule.var = var
# now fork
p = multiprocessing.Pool(8)
p.map(somefunc, list_of_params)

如果你使用ipython,你还需要把somefunc放到一个模块里(在main里保存函数似乎不太管用)。

撰写回答