gpt4 book ai didi

Python 工作进程池和只运行多个进程有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 20:27:20 24 4
gpt4 key购买 nike

我不确定何时使用工作池与多进程。

processes = []

for m in range(1,5):
p = Process(target=some_function)
p.start()
processes.append(p)

for p in processes:
p.join()

对比

if __name__ == '__main__':
# start 4 worker processes
with Pool(processes=4) as pool:
pool_outputs = pool.map(another_function, inputs)

最佳答案

如其所说on PYMOTW :

The Pool class can be used to manage a fixed number of workers for simple cases where the work to be done can be broken up and distributed between workers independently.

The return values from the jobs are collected and returned as a list.

The pool arguments include the number of processes and a function to run when starting the task process (invoked once per child).

请查看此处给出的示例,以更好地了解其应用、功能和参数。

基本上,Pool 是一个 helper ,在他们需要做的就是使用公共(public)输入数据、并行处理它并产生联合输出的情况下,简化流程(工作人员)的管理。

Pool 做了很多事情,否则你应该自己编写代码(不是太难,但仍然很方便找到预煮的解决方案)

  • 输入数据的拆分
  • 目标流程功能被简化:它可以被设计成只需要一个输入元素。 Pool 将调用它来提供分配给该工作人员的子集中的每个元素
  • 等待 worker 完成工作(即加入流程)
  • ...
  • 合并每个 worker 的输出以产生最终输出

关于Python 工作进程池和只运行多个进程有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33445603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com