美文网首页
记录Python关闭子进程的几种方法

记录Python关闭子进程的几种方法

作者: 叮咚猫_503b | 来源:发表于2019-04-08 11:51 被阅读0次

    1.terminate()函数

    这种方法强制终止进程,不会进行任何清理操作,如果目标线程创建了子进程,该子进程就成了僵尸进程,使用该方法需要特别小心这种情况。如果目标线程还保存了一个锁那么也将不会被释放,进而导致死锁

    multiprocessing.terminate()
    

    2.multiprocessing.Value对象

    通过全局变量、互斥锁或信号量等进程间通信手段来达到关闭的目的。
    下面代码通过alive.value = False传值 关闭结束进程

    from multiprocessing import Process, Value
    import time
    
    alive = Value('b', False)
    
    def worker(alive):
      while alive.value:
        time.sleep(0.1)
        print("running")
    
    if __name__ == '__main__':
      p = Process(target=worker, args=(alive,))
      alive.value = True
      p.start()
      time.sleep(1)
      alive.value = False
    

    3.对子进程发送signal

    相当于发送 Ctrl + C 信号于命令行执行关闭命令

    p.process.signal(signal.SIGINT)
    

    相关文章

      网友评论

          本文标题:记录Python关闭子进程的几种方法

          本文链接:https://www.haomeiwen.com/subject/pxluiqtx.html