Python 孤儿进程与僵尸进程

Posted 鑫仔园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 孤儿进程与僵尸进程相关的知识,希望对你有一定的参考价值。

孤儿进程

from multiprocessing import Process,current_process
import time,sys

def func():
    # 孤儿进程,父进程早于子进程退出
    print('子进程PID',current_process().pid)
    time.sleep(10)

    print('子进程退出')

def main():
    print('子进程PID',current_process().pid)
    p = Process(target=func)
    p.start()
    print('父进程退出')
    sys.exit()   # 退出程序
    # p.join(timeout=1)  # 如果回收失败,则不回收
    # timeout 父进程只会阻塞等待1秒常识回收子进程。
if __name__ == '__main__':
    main()
import os,time
# 父进程早于子进程退出,此时子进程一直会被1号进程回收,监控
def func():
    pid = os.fork()      #fork()会执行分割成两部分,调用一次,返回两次,且在fork()在Linux运行。

    if pid == 0:     # 子进程pid为0
        time.sleep(10)
        print('我是子进程')

    if pid > 0:      # 父进程pid为子进程的PID
        print('我是父进程,我开启的子进程PID是',pid)
if __name__ == '__main__':
    func()

僵尸进程

import time,sys
from multiprocessing import Process,current_process
def func():
    print('子进程PID',current_process().pid)
    print('子进程退出')

def main():
    print('子进程PID',current_process().pid)
    p = Process(target=func)
    p.start()
    time.sleep(10)
    print('父进程退出')
    sys.exit()   # 退出程序
    # p.join(timeout=1)  # 如果回收失败,则不回收
    # timeout 父进程只会阻塞等待1秒常识回收子进程。
if __name__ == '__main__':
    main()

# 注:在Linux中查看进程,Z+,代表僵尸进程    ps -aux|grep python

以上是关于Python 孤儿进程与僵尸进程的主要内容,如果未能解决你的问题,请参考以下文章

Python并发编程03/僵尸孤儿进程,互斥锁,进程之间的通信

python学习笔记——孤儿进程和僵尸进程

孤儿进程与僵尸进程

僵尸进程与孤儿进程的区别

孤儿进程与僵尸进程名词解释

孤儿进程与僵尸进程