0

我一直在尝试打印以筛选由 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”之前打印“printer”所做的事情。

4

1 回答 1

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()
于 2014-01-15T16:16:34.250 回答