[英]Multicore Processing Python dosent print the output of a function
我不明白为什么代码没有在这个非常愚蠢的程序的控制台中打印输出的原因。
import numpy as np
from multiprocessing import Process
def calc2(nucleo, tope):
for i in range(0, tope):
print(str(np.sqrt(i)) + " el nucleo es " + str(nucleo))
processes = []
for i in range(os.cpu_count()):
print("registering process %d" % i)
processes.append(Process(target=calc2, args=(i, 100, )))
for process in processes:
process.start()
for process in processes:
process.join()
至于如何获取返回值,这里有一个选项
import os
import numpy as np
import multiprocessing as mp
def calc2worker(args):
return calc2(*args)
def calc2(nucleo, tope):
return ["{} el nucleo es {}".format(np.sqrt(i), nucleo)
for i in range(0, tope)]
if __name__ == "__main__":
pool = mp.Pool() # defaults to os.cpu_count()
data_generator = ((i, 100) for i in range(os.cpu_count()))
for result in pool.map(calc2worker, data_generator):
for line in result:
print(line)
pool.close()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.