zoukankan      html  css  js  c++  java
  • 僵尸进程与孤儿进程

    from multiprocessing import Process
    import time
    import os
    
    
    def task(name):                                                               # os.getppid()查看父进程编号
        print("%s is running, parent id is <%s>" % (os.getpid(), os.getppid()))   # os.getpid()查看自己进程编号
        time.sleep(3)   # 模拟任务运行一段时间
        print("%s is done, parent id is <%s>" % (os.getpid(), os.getppid()))
    
    
    if __name__ == "__main__":    # windows 一定要把开启指令放到main下面  Linux无所谓
        # Process(target=task, kargs={"name" : "子进程"})  # 方式1
        p = Process(target=task, args=("子进程1",))  # 方式2  实例化得到一个对象
        p.start()    # (仅仅只是给操作系统发送了一个信号)开启子进程,帮你执行task
    
        print("主", os.getpid(), os.getppid())  # 此时的父进程是pycharm
    

      父进程的运行过程中开了子进程,这两个进程共用一个打印终端。父进程打印完 主 14140 124 后并没有结束掉。等着子进程运行完后,主进程才会结束。

    父进程任何时候查看子进程都能找到(僵尸进程)。子进程结束掉后,留一个状态信息。父进程结束后会清理掉所有信息。

    僵尸进程缺点:多个pid被占。如果父进程一直不死,就会有害

    孤儿进程:子进程没结束,父进程结束。在Linuxs系统中有一个init进程,是所有进程的父进程。此时,子进程的状态信息由init进程接管

    孤儿进程无害,僵尸进程有害。

  • 相关阅读:
    caffe:mac10.12安装caffe的步骤
    查找两个链表的共同子链表
    golang:1.并发编程之互斥锁、读写锁详解
    git问题汇总
    有用的技术工具
    maven 安装本地jar包到本地maven仓库
    win7下Hadoop学习 之 Cygwin下载、安装、配置
    简单目录备份脚本
    2021年01月28日微博热搜汇总
    2021年01月26日微博热搜汇总
  • 原文地址:https://www.cnblogs.com/fantsaymwq/p/10125157.html
Copyright © 2011-2022 走看看