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

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)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一. 操作系统概念 操作系统位于底层硬件与应用软件之间的一层.工作方式: 向下管理硬件,向上提供接口.操作系统进行...
    月亮是我踢弯得阅读 6,005评论 3 28
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 2,917评论 0 8
  • 顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。进程的概念起源于操作系统,是操作系统最核心的概...
    SlashBoyMr_wang阅读 1,160评论 0 2
  • 进程 操作系统背景知识 顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作...
    go以恒阅读 964评论 0 2
  • “晨兴理荒秽,带月荷锄归”是陶渊明曾经历的生活状态;“小舟从此逝,江海寄余生”是苏东坡曾经历的生活状态;“...
    诗意世界_随性而为阅读 1,261评论 4 12