阵列之间的内存共享问题

时间:2018-12-23 20:33:32

标签: python arrays memory multiprocessing

我正在几个进程之间共享3个数组,并且运行良好。但是,在创建第4或第5硬盘时,它们的内存插槽似乎相互覆盖了

例如     我有这样的东西:

a = mp.Array(ctypes.c_double, 5000)
b = mp.Array(ctypes.c_double, 5000)
c = mp.Array(ctypes.c_double, 5000)
d = mp.Array(ctypes.c_double, 5000)
e = mp.Array(ctypes.c_double, 5000)
f = mp.Array(ctypes.c_double, 5000)

然后我创建填充这些数组的进程(它们是独立的进程,它们更新数组中的不同部分)

for i in range(0,10):
    process = mp.Process(target=myFunction, args=(a, b, c, d, e, f))
    process.daemon = True
    process.start()
    processes.append(process)

for process in processes:
    process.join()

一旦处理完成,我可以看到a和b和c正确填充。但是,d,e和f没有在“ myFunction”中指定的任何值。他们 取而代之的是与c相同的值。

在我看来,为数组c,d,e和f保留内存插槽时存在一种限制,它们实际上共享相同的空间。

这可能吗?

0 个答案:

没有答案