共享numpy数组的Python多处理
问题描述:
假设我创建了一个具有2维numpy数组的对象A作为属性。然后我使用Process API创建了10个线程来随机设置A的行。我想知道如果我编写以下代码,是否在所有Process(线程)之间共享self.x,或每个Process(线程)只有一个副本?共享numpy数组的Python多处理
如果不共享,我将失去所有更新,对不对?
import numpy as np
from multiprocessing import Process
class A:
def __init__():
self.x = np.zeros((3,4))
def update():
threads = []
for i in range(10):
trd = Process(target=self.set, args=(i,))
threads.append(trd)
trd.start()
for i in range(10):
threads[i].join()
def set(i):
self.x[i/3] = np.random.rand(1,4)
if ___main___:
a = A()
a.update()