我一直在尝试打印来屏蔽Pool生成的过程中的内容。不幸的是没有出现!我需要这个,因为我将有4个进程同时运行很长时间,我需要估算并同时打印一些信息。
我一直在四处寻找自己想弄清楚,但我不明白这是否真的可能或如何做到这一点。使用进程而不是池?任何帮助&代码将非常感谢!
这是一个非常简单的例子,我很乐意让它发挥作用!
from multiprocessing import Pool
import os
def printer(i):
pid = os.getpid()
print "#%i PID: %i" % (i,pid)
return pid
if __name__ == '__main__':
pool = Pool(2)
res = pool.map(printer,[1,2])
pool.terminate()
print "PIDs", res
我希望在终止池并打印“res”之前打印“打印机”的内容。
答案 0 :(得分:0)
您可以使用Pool.imap在结果准备好时迭代结果。
from multiprocessing import Pool
import os
def printer(i):
pid = os.getpid()
print "#%i PID: %i" % (i,pid)
return pid
def print_result(res):
print "PID", res
if __name__ == '__main__':
pool = Pool(2)
res = pool.imap(printer,range(10), 1)
for pid in res:
print pid
pool.terminate()