python multiprocessing for循环不是为所有循环参数运行



这是我要做的代码。输出文本文件应该包含500个数据。但它总是小于500(450或476或429当我运行)。知道为什么会发生这种情况吗,我应该怎么做才能输出500个数据。如果我能得到有序的输出,那就太有帮助了。

def foo(j):        
output=[j]        
f=open('output.txt','a')
f.write('n')

np.savetxt(f,output)
f.close()

if __name__=='__main__':
pool = Pool(processes=4)
pool.map(foo,range(500)) 

尝试事先创建块。例如

def f_amp(inputs):
chunks = [inputs for inputs in range(500)]

pool = Pool(processes=4)

result = pool.map(f, chunks)

你也可以参考这里的解决方案。

最新更新