在python进程之间共享资源

时间:2019-03-05 13:42:54

标签: python

我想在多个python脚本之间共享多个资源。理想情况下,我要执行的是运行主程序。它包含一些脚本范围的变量。然后,我想将完全相同的程序分叉到一个新的shell中,并使其可以访问我的脚本范围的变量。

我正在研究多处理,但是不确定使用管道等其他方法是否会更好?

1 个答案:

答案 0 :(得分:2)

您可以将Value中的Arraymultiprocessing用于跨进程的共享内存。

来自multiprocessing的{​​{3}}的示例:

from multiprocessing import Process, Value, Array

def f(n, a):
    n.value = 3.1415927
    for i in range(len(a)):
        a[i] = -a[i]

if __name__ == '__main__':
    num = Value('d', 0.0)
    arr = Array('i', range(10))

    p = Process(target=f, args=(num, arr))
    p.start()
    p.join()

    print(num.value)
    print(arr[:])

将输出:

3.1415927
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]