微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法终止python中的多处理进程

如何解决无法终止python中的多处理进程

我在 python 中运行 multiprocessing.process,在该进程内我有一个 while 循环运行,直到满足某个条件。当我启动进程并满足条件时,进程正常完成,但是当我在“while 循环”运行时尝试终止它时,它不会终止。这是我的代码的骨架。 (不能提供完整的代码,它太大了) 我正在从 PYQT5 窗口(带有开始/停止按钮)开始该过程,并且我试图用相同的按钮按钮终止它。 蟒蛇 2.7 操作系统:Ubuntu 16.04


def control_exe(id):    
        while ( "check condition "):
             #"do stuff"
        print('finished process')

def Multifunc(list):
        ps = []
        for i in list:
            p = multiprocessing.Process(target=control_exe,args=(i,))
            ps.append(p)
            p.start()
        return ps

class control(qtw.QMainWindow,Ui_control): 
        
        def __init__(self,*args,**kwargs):
            super(control,self).__init__(*args,**kwargs)
            self.setupUi(self)
            
            self.start_button1.clicked.connect(self.ejecutar_control1)

        def ejecutar_control1(self):
            
            if self.start_button1.text() == "Start 1":
                print("Started")
                self.start_button1.setText("Stop 1")
                self.ps = Multifunc([1])
                return
            else:   
                for p in self.ps:
                            p.terminate()
                            print("Stop sent")
                self.start_button1.setText("Start 1")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。