我想把我的计算工作分配给多个CPU,所以我选择了多进程处理。然而,结果并不是我想要的。
import numpy as np
from multiprocessing import Process
def func(begin,end):
print('*'*5)
print('begin=%d' %(begin))
for i in range(begin,end):
for j in range(10):
myarray[i][j]=1
myarray=np.zeros((12,10))
print(myarray)
for i in range(4):
begin=i*3
end=(i+1)*3
p=Process(target=func,args=(begin,end,))
p.start()
print('*'*5)
print(myarray)
我认为myarray应该全是1。但它却一直没有改变。为什么?func函数不会改变myarray的元素吗? 我尝试了来自这个链接的示例。
from multiprocessing import Process
def f(name):
print('hello',name)
p=Process(target=f,args=('bob',))
p.start()
屏幕上什么也没有显示。为什么? 我该如何使用Python完成计算?有人能提供一个充分利用多CPU的方法吗?
hello
,bob
) - Nir Alfasi