我已按照建议使用以下代码,但在第一个工作人员找到匹配项后,池仍未终止。 理想的结果是让20个进程运行函数f,并且当它们中的任何一个找到匹配项时,池都应终止,而实际上,我必须等到所有工作人员都找到一个匹配项时才发生。

from multiprocessing import Pool
import numpy as np


def f(z):..Output omitted


class Worker():
    def __init__(self, workers):
        self.pool = Pool(processes=workers)

    def callback(self, result):
        if result:
            self.pool.terminate()

    def do_job(self):

        self.pool.map_async(f,range(1,20), callback=self.callback)
        self.pool.close()
        self.pool.join()


if __name__=="__main__":
    w = Worker(20)
    w.do_job()

  ask by GREoIPsec translate from so

本文未有回复,本站智能推荐:

1回复

Python多处理池:在完成任何k个作业后终止进程

我有一个函数,我使用 Pool.starmap() 调用n进程。 我想在n中的任何k完成后终止所有进程。 我该如何实施?
1回复

如何尽早终止python多进程池[重复]

这个问题已经在这里有了答案: Python多进程池。 当工作进程之一确定不需要执行更多工作时,如何退出脚本? 1个答案 最近,我开始在multiprocessing模块中四处寻找,发现pool.map函数对于快速解析大型数组非常有用。 有办法提前终止池吗? 可以说我有一
2回复

Python多进程池。当工作进程之一确定不再需要完成工作时如何退出脚本?

所以我有一个工作进程池可以做一些工作。 它只需要找到一种解决方案。 因此,当其中一个工作进程找到解决方案时,我想停止一切。 我想到的一种方法是调用 sys.exit()。 但是,这似乎无法正常工作,因为其他进程正在运行。 另一种方法是检查每个进程调用的返回值(part_crack_helper 函
1回复

多进程池不会在所有进程之前关闭并加入终止脚本

我创建了一个多处理器应用程序,它只是循环一些文件并比较它们,但由于某种原因,池永远不会关闭并等待加入所有进程响应。 我已经尝试过: 还使用上下文和强制它: 即使使用上下文也不应该需要关闭/连接。 该脚本只是提交所有作业,我可以在任务管理器中看到所有 python 实例并且正在运行,函数内的打印语句在
1回复

使用paramiko执行命令时无法终止进程

我有一个执行远程命令的python脚本,我想在其中使用多重处理。 我设法使程序本身正常工作,但是当尝试使用CTRL + C中断程序时,出现以下异常,并且程序无法正确终止: 我究竟做错了什么?
2回复

如何管理进程池?

我正在尝试在Windows 10上设置一个多处理池。 基本上,一些cpus(在我的情况下为12)应该从Qin读取并将结果写入Qout 。 在Qin写'end' ,该过程应停止。 由于某种原因,该过程挂起。 我开发了一个简单的版本:
4回复

python多处理池终止

我正在开发一个渲染农场,我需要我的客户端能够启动渲染器的多个实例,而不会阻塞,以便客户端可以接收新命令。 我的工作正常,但是我无法终止创建的进程。 在全局级别,我定义了我的池(以便我可以从任何函数访问它): 然后我用 apply_async 调用我的渲染器: 该函数完成,在后台启动进程,并等待新命令
1回复

进程超时内的多处理池

当我使用以下代码时,池结果总是返回超时,我在做什么逻辑上不正确? 我知道这个bug ,并且会认为它会在python 2.6.4中得到修复吗?