gpt4 book ai didi

python - 按顺序执行ProcessingPools的正确方法

转载 作者:太空宇宙 更新时间:2023-11-03 15:33:27 24 4
gpt4 key购买 nike

我正在使用 pathos.multiprocessing 库(因为我的工作方法中有 lambda),并且正在尝试按顺序运行两个处理池。

例如:

from pathos.multiprocessing import ProcessingPool
pool=ProcessingPool(nodes=2)
res=pool.map(workerFunc,workerArgList)
pool.close()
pool.join()
# ...
pool=ProcessingPool(nodes=2)
res=pool.map(workerFunc2,workerArgList2)
pool.close()
pool.join()

代码按原样在第二个 pool.map() 处的 pool.py 的 map() 函数中返回一个 AssertionError(在assert self._state == RUN 处)。每个池独立工作正常。看来,由于某种原因,池的状态在第二次初始化中设置为 TERMINATE 而不是 RUN。我应该如何初始化第二个池(或终止第一个池)以获得所需的行为?或者这是我偶然发现的某种错误?

谢谢!安德鲁

最佳答案

根据official Python Documentation on Pool.map() ,

It blocks until the result is ready.

换句话说,pool.map() 在所有处理完成之前不会返回结果。使用pool.map()时,不需要每次都运行pool.close()pool.join(),只需使用完pool后执行一次。

关于python - 按顺序执行ProcessingPools的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42728102/

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