博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pythonNet 04多进程
阅读量:5058 次
发布时间:2019-06-12

本文共 797 字,大约阅读时间需要 2 分钟。

fork注意:

*进入阻塞态的进程一定会让出cpu时间片
*各个进程在自己空间内对数据的操作不影响其他进程
*父进程在执行fork之前开辟的空间子进程也会复制

进程相关函数

os.getpid()

功能获取当前进程的PID号
返回值:返回当前进程的PID

os.getppid()

功能;获取父进程的PID号
返回值:返回父进程PID

os._exit(status)

功能:退出程序
参数:整数 表示自定义的进程退出状态标识

sys.exit([status])

功能:退出进程
参数:整数 表示退出状态 默认为0
        传一个字符串,则退出时会打印该字符串

孤儿进程和僵尸进程

孤儿进程;父进程先于子进程退出,则子进程成为孤儿进程

*孤儿进程会被系统进程收养,此时系统进程就好成为该进程父进程

僵尸进程:子进程先于父进程退出,父进程没有处理子进程退出状态,此时子进程就会成为僵尸进程

*僵尸进程虽然结束但是会存留部分PCB在内存,大量的僵尸进程会占用内存资源

如何避免僵尸进程产生
    *处理自己成退出状态
    pid,status =os.wait()
    功能;在父进程中阻塞等待子进程退出
    返回值:pid 退出的子进程的PID
            status 子进程退出状态

    pid,status =os.waitpid(pid,option)
    功能;在父进程中等待子进程退出
    参数:pid -1 表示等待任意子进程
             >0 表示等待指定PID的子进程退出
          option 0表示阻塞等待
                WNOHANG 表示非阻塞
    返回值:pid 退出的子进程的PID
            status 子进程的退出状态

    创建二级子进程

    1.父进程创建子进程等待子进程退出
    2.子进程创建二级子进程然后退出
    3.二级子进程成为孤儿,和原来父进程各自执行任务

 

 

 

转载于:https://www.cnblogs.com/sky-ai/p/9812973.html

你可能感兴趣的文章
python添加pip本地源
查看>>
python
查看>>
git tag推送小分析
查看>>
数论及其应用——素数问题
查看>>
MTK Socket学习——HTTP请求
查看>>
svn .externals 属性
查看>>
Java复制文件
查看>>
Swift 4 经典数据结构 Data Struct大全
查看>>
sql语句大全(db2、oracle、mysql、sql server)
查看>>
Robot Framework环境搭建步骤
查看>>
AttributeError: module 'pip' has no attribute 'main'
查看>>
python3.X中简单错误处理,和Python2区别
查看>>
防止你的iPhone程序遭盗版(入门篇)
查看>>
cocos2d查看OpenGL当前所绑定的纹理
查看>>
详解用em替换px
查看>>
win10家庭版启用远程桌面
查看>>
用于所有Windows驱动程序开发者的概念
查看>>
zabbix基本功能操作
查看>>
Bootstrap+JSP实例学习笔记一.简单的带登录功能的首页
查看>>
浅谈C#与数据结构中的哈希表(Hashtable)(上)(没法转载,只能贴在这里啦)
查看>>