我不确定何时使用工作池与多个进程。
processes = []
for m in range(1,5):
p = Process(target=some_function)
p.start()
processes.append(p)
for p in processes:
p.join()
VS
if __name__ == '__main__':
# start 4 worker processes
with Pool(processes=4) as pool:
pool_outputs = pool.map(another_function, inputs)
正如它说on PYMOTW:
Pool类可用于管理固定数量的工作人员,以处理可以在工作人员之间独立分配和分配工作的简单情况。
收集作业的返回值并作为列表返回。
池参数包括进程数和启动任务进程时要运行的函数(每个子进程调用一次)。
请查看那里给出的示例,以便更好地了解其应用,功能和参数。
基本上,Pool是一个帮助器,在需要做的就是消耗常用输入数据,并行处理并生成联合输出的情况下,简化了进程(工作者)的管理。
游泳池做了很多事情,否则你应该自己编码(不是太难,但仍然,找到预先制作的解决方案很方便)
即
以下信息可能有助于您了解Python多处理类中池和进程之间的区别:
池:
处理: