我知道这个问题以前已经在这里讨论过,但我就是找不到任何可行的方法。我想在我的多进程之间共享一个全局变量,但不希望任何一个进程修改它,也就是说,它们只需要读取权限。举个简单的例子:
def f(x):
return x**GlobalVar
if __name__ == '__main__':
GlobalVar = 6
pool = multiprocessing.Pool()
res= pool.map(f,[1,2,3,4])
print(res)
显然,这种方法不起作用,因为进程无法访问GlobalVar。因此,为了使其起作用,在每个单独的进程中评估GlobalVar或从文件中导入它是必要的。由于在我的应用程序中,GlobalVar是一个非常大的数组,这是极其浪费资源的。如何在内存中仅存储一份副本,轻松共享这个全局变量?我想再强调一下,这些进程只需要读取此全局变量而不更改它。