首页 > 系统相关 >进程--特殊的进程

进程--特殊的进程

时间:2022-11-17 23:58:02浏览次数:43  
标签:特殊 结束 孤儿 -- pid print 进程 os

孤儿进程:

原因:由于 父进程 比 子进程 先结束退出掉,此时子进程将成为孤儿进程

孤儿进程不会一直存在,孤儿进程最终会被系统进程收养,此时系统进程就会成为孤儿进程的父进程,等孤儿进程结束退出后,系统进程就会自动处理掉。


from time import sleep
import os,sys
def f1():
for i in range(3):
sleep(1)
print("写代码")

def f2():
for i in range(4):
sleep(1)
print('测代码')

pid = os.fork()
if pid < 0:
print('error')
elif pid == 0:
child_pid = os.fork() #在子进程中再创建子进程
print(os.getpid())
if child_pid < 0:
print('error')
elif child_pid == 0:
f2()
print(os.getppid())
else: #子进程直接退出,让孙进程成为孤儿进程
sys.exit()
else:
f1()



最后成为孤儿进程后,孙子进程的父进程编程1,1表示的就是系统进程

 

 

--僵尸进程

原因:子进程先比父进程结束退出,但是父进程没有对进程回收。此时子进程就是僵尸进程。子进程虽然结束了,但是会存在部分信息在内存中,大量的僵尸进程堆积就会占用系统的大量的资源。

解决办法:

1、父进程使用os.wait()阻塞函数将父进程挂起。

缺点:由于使用阻塞函数需要等子进程结束后,才能执行父进程,导致父进程被挂起,效率低下

2、创建二级子进程

【1】 父进程创建子进程,等待回收子进程
【2】 子进程创建二级子进程然后退出
【3】 二级子进程称为孤儿,和原来父进程一同执行事件

3、通过操作系统信号处理sign进程退出

如果父进程不关心子进程什么时候结束,那么可以用signal(SIGCHLD,SIG_IGN) 通知内核,自己对子进程的结束不感兴趣,那么子进程结束后,内核会回收, 并不再给父进程发送信号。

标签:特殊,结束,孤儿,--,pid,print,进程,os
From: https://www.cnblogs.com/powfu/p/16901754.html

相关文章

  • Java——包装类详解
                 装箱与拆箱的概念.基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“:装箱:从基本类型转换为对应的包装......
  • 运维相关面试题
    一、基本概念1.常见的Linux发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块?常见的Linux发行版本有Redhat、Centos、Debian、Ubuntu、Suse最擅长Redhat......
  • 微信云开发
    云开发创建云开发的项目新建项目时点击选择使用云开发打开右侧云开发,选择数据库,创建集合,再添加数据记录创建云函数//云函数入口文件constcloud=require('wx-se......
  • Caused by: android.view.InflateException: Binary XML file line #2 in com.example
    在学习《Android第一行代码》的14.5章节深色主题的内容时,该章节是以MaterialTest项目作为示例的,并且在res目录下创建了一个values-29目录,在values-29目录下又创建了一个sty......
  • pywinauto
    pywinautopywinauto是一组用于自动化MicrosoftWindowsGUI的python模块。最简单的是,它允许您将鼠标和键盘操作发送到窗口对话框和控件,来完成我们自动化操作。 ......
  • 卷影删除小结
    一、几种系统方式卷影删除1.1WMICcmd.exe/cC:\\Windows\\System32\\wbem\\WMIC.exeshadowcopywhere\"ID='%s'\"delete1.2VSSADMINvssadminDeleteShadow/......
  • Vue-router 的简单应用
    一、基本路由。1、引入vue.js。<scripttype="text/javascript"src="../vue/vue.js"></script>2、引入核心的插件vue-router。<scripttype="text/javascript"s......
  • 底特律:化身为人 一周目结束有感
    偶然看到打折买了《底特律:化身为人》,感觉确实是个相当不错的作品。这个游戏的主体基本就是由选择决定剧情发展,但不足之处是选项意义不甚明确,导致有一些做法并不是我真正认......
  • Linux环境搭建和常用命令(二)
    Linux一关于linux什么是Linux?用在哪些地方?Linux是一套操作系统,和我们熟悉的windows,苹果电脑的macOS一样,都是可以在电脑上运行的操作系统。Linux在我们的日常生......
  • README
    山海个人笔记note所爱隔山海山海亦可平你只管做剩下的交给时间更新记录2022.10.1914:10tf-idf实现sanic服务框架实践pet-prompt解读kpt-prompt解读2022.1......