python多处理池的目的

时间:2013-06-11 20:36:30

标签: python multiprocessing pool

我很难理解Python的多处理模块中池的用途。

我知道这段代码在做什么:

import multiprocessing

def worker():
    """worker function"""
    print 'Worker'
    return

if __name__ == '__main__':
    jobs = []
    for i in range(5):
        p = multiprocessing.Process(target=worker)
        jobs.append(p)
        p.start()

所以我的问题是,在什么类型的情况下会使用池?

1 个答案:

答案 0 :(得分:2)

当您希望能够向子流程提交更多任务时,

Pool对象非常有用,但您不希望处理这些任务的所有组织(即,应该生成多少个流程来处理它们;哪个任务进入哪个进程等)并且您只关心结果值,而不关心任何其他类型的同步等。您不希望控制子进程计算而只是结果。< / p>

另一方面,当您想要执行特定操作时,使用Process,并且需要控制子流程,而不仅仅是计算结果。< / p>