小编Mar*_*rku的帖子

PYTHON使每个进程都可以访问全局变量

我是python的新手,并开始使用遗传算法(GA)进行某种曲线拟合.对于那个GA,我使用(真棒)pyevolve库(http://pyevolve.sourceforge.net/),它能够通过使用多处理极大地减少计算时间.

这就是我的问题出现的地方:我想要近似的曲线是一个从excel文件中读取并在程序开头存储为全局变量的数组.使用python多处理模块时,每个进程都使用自己的全局变量创建自己的python实例.这导致每一个人,在每一代算法(意味着每个过程)中一次又一次地打开和读取excel文件.打开大的excel文件会导致大量的时间,因此只需打开一次该文件并使读取数组可供每个进程/个人使用,这将是一件好事.

多处理是在pyevolve库中启动的,我不想更改它以便于更新.不幸的是,这意味着只需通过例如将变量传递给流程池

p = Process(target=my_func,args=(my_array))

对我来说不是一个选择.这是我到目前为止找到的唯一解决方案.

有没有人知道从每个进程访问my_array的另一种方法?

提前致谢!

python global multiprocessing pyevolve

8
推荐指数
1
解决办法
842
查看次数

标签 统计

global ×1

multiprocessing ×1

pyevolve ×1

python ×1