我很难理解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()
所以我的问题是,在什么类型的情况下会使用池?
答案 0 :(得分:2)
Pool
对象非常有用,但您不希望处理这些任务的所有组织(即,应该生成多少个流程来处理它们;哪个任务进入哪个进程等)并且您只关心结果值,而不关心任何其他类型的同步等。您不希望控制子进程计算而只是结果。< / p>
另一方面,当您想要执行特定操作时,使用Process
,并且需要控制子流程,而不仅仅是计算结果。< / p>