我希望填充一个2D-numpy数组,使用for循环并通过使用多进程来加速计算。
import numpy
from multiprocessing import Pool
array_2D = numpy.zeros((20,10))
pool = Pool(processes = 4)
def fill_array(start_val):
return range(start_val,start_val+10)
list_start_vals = range(40,60)
for line in xrange(20):
array_2D[line,:] = pool.map(fill_array,list_start_vals)
pool.close()
print array_2D
执行它的效果是Python运行4个子进程并占用4个CPU核心,但是执行不会完成,数组也没有打印出来。如果我尝试将该数组写入磁盘,则什么也不会发生。
有人能告诉我为什么吗?