在python的多进程模块中,如何查找哪个工作进程已执行该作业

时间:2011-12-23 08:36:34

标签: python multiprocessing

有没有办法找出,Pool中哪个工作进程执行了特定的工作。

例如,

def start_exe():
    #execute some bunch of statements 

if __name__ == '__main__':
    p = Pool(5)
    result = p.apply.async(start_exe)
    print result.get()

1 个答案:

答案 0 :(得分:3)

我没有看到任何API,但您可以在结果中嵌入执行该作业的进程的名称:

from multiprocessing import Pool, current_process

def start_exe():
    return 'done', current_process().name

if __name__ == '__main__':
    p = Pool(5)
    result = p.apply_async(start_exe)

    print result.get()

示例输出:

('done', 'PoolWorker-4')