【发布时间】:2021-07-22 19:06:06
【问题描述】:
我知道这个问题之前已经在这里讨论过,但是我找不到任何有效的方法。 我想在我的多处理进程之间共享一个全局变量,而不需要任何进程更改它,即它们只需要读取访问权限。举个简单的例子:
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 是一个非常大的数组,这非常浪费。如何在进程之间轻松共享此全局变量,同时将其副本存储在内存中?我想重申一下,进程只需要读取这个全局变量而不改变它。
【问题讨论】:
-
如果相关,我正在运行 Windows...
标签: python windows multiprocessing pool