我正在几个进程之间共享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保留内存插槽时存在一种限制,它们实际上共享相同的空间。
这可能吗?