[英]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.