2013-06-11 72 views
1

我很难理解Python多处理模块中池的用途。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() 

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

回答

2

Pool对象在您希望能够向子流程提交更多任务时很有用,但您不想处理这些任务的所有组织(即应该生成多少个流程来处理它们;哪些任务转到哪个进程等),你只关心结果值,而不关心任何其他类型的同步等。你不想控制子进程计算,而只是结果。当你想执行一个特定的动作

在另一方面Process被使用,并且在子过程中,你需要控制,不仅取决于其计算的结果。