当前位置: 首页 > news >正文

自己做网站 发布视频外贸产品推广网站

自己做网站 发布视频,外贸产品推广网站,长春制作公司网站,wordpress自定义公共模板【一】僵尸进程和孤儿进程 【1】引入 我们知道在unix/linux中#xff0c;正常情况下#xff0c;子进程是通过父进程创建的#xff0c;子进程在创建新的进程。 子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它…【一】僵尸进程和孤儿进程 【1】引入 我们知道在unix/linux中正常情况下子进程是通过父进程创建的子进程在创建新的进程。 子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。 【2】僵尸进程 1什么是僵尸进程 僵尸进程是指完成自己的任务之后没有被父进程回收资源 例如开了一个pycharm --- 将 pycharm 关闭 -- 任务管理器所有的关于 pycharm 的进程应该都被关闭但是有时候会发现有某几个 pycharm 进程任然在后台运行 -- 本来这部分资源应该被回收结果因为还在运行占用系统资源 2解决办法 因此UNⅨ提供了一种机制可以保证父进程可以在任意时刻获取子进程结束时的状态信息 在每个进程退出的时候内核释放该进程所有的资源包括打开的文件占用的内存等。 但是仍然为其保留一定的信息包括进程号the process ID退出状态the termination status of the process运行时间the amount of CPU time taken by the process等 直到父进程通过wait / waitpid来取时才释放. 但这样就导致了问题如果进程不调用wait / waitpid的话那么保留的那段信息就不会释放其进程号就会一直被占用但是系统所能使用的进程号是有限的 如果大量的产生僵死进程将因为没有可用的进程号而导致系统不能产生新的进程. 此即为僵尸进程的危害应当避免。 任何一个子进程(init除外)在exit()之后并非马上就消失掉而是留下一个称为僵尸进程(Zombie)的数据结构等待父进程处理。 这是每个子进程在结束时都要经过的阶段。 如果子进程在exit()之后父进程没有来得及处理这时用ps命令就能看到子进程的状态是“Z”。 如果父进程能及时 处理可能用ps命令就来不及看到子进程的僵尸状态但这并不等于子进程不经过僵尸状态。 如果父进程在子进程结束之前退出则子进程将由init接管。 init将会以父进程的身份对僵尸状态的子进程进行处理。 3示例 import multiprocessing import time ​ ​ def work(name):print(f{name} is starting ...)time.sleep(2)print(f{name} is ending ...\n) ​ ​ def main():for i in range(3):task multiprocessing.Process(targetwork,args(ftask_{i},))task.start() ​ ​ if __name__ __main__:print(fmain process starting ...)main()print(fmain process ending ...) ​ ​ # main process starting ... # main process ending ... # task_0 is starting ... # task_1 is starting ... # task_2 is starting ... # task_0 is ending ... # task_1 is ending ... # task_2 is ending ... 【3】孤儿进程 1什么是孤儿进程 孤儿进程是指父进程在子进程终止之前就退出了 例如在没有关闭共享屏幕的前提下直接退出腾旭会议这时共享屏幕也会退出不会还挂在后台 在主程序死亡以后因为子进程就没有办法再和主进程通信。就像是有一个福利院 init进程 会接管这些没有父亲的孤儿如果最后没有人来领取吗就把所有子线程杀死 2示例 import os import sys import time ​ ​ if __name__ __main__:pid os.getpid()ppid os.getppid()print(父进程,pid:,pid,ppid:,ppid)pid os.fork()# 执行pidos.fork()则会生成一个子进程# 返回值pid有两种值# 如果返回的pid值为0表示在子进程中# 如果返回的pid值0,表示在父进程中if pid 0:print(父进程终止)sys.exit(0)# 保证主线程退出完毕time.sleep(1)print(我是子进程,os.getpid(),os.getppid()) 【4】僵尸进程和孤儿进程谁的危害性更大 僵尸进程的危害性更大因为僵尸进程一直会持续存在在后台占用资源孤儿进程会因为主进程的死亡然后有init进程接管并销毁 例如有个进程它定期的产 生一个子进程这个子进程需要做的事情很少做完它该做的事情之后就退出了因此这个子进程的生命周期很短但是 父进程只管生成新的子进程至于子进程 退出之后的事情则一概不闻不问这样的话系统运行一段后就会存在很多僵尸进程如果实在Linux中的话可以使用ps命令查看就可以看到很多状态为Z的进程 严格来说僵尸进程并不是问题的根源罪魁祸首是产生大量僵尸进程的父进程因此当我们需要消灭系统中大量的僵尸进程时最好的办法就是将制造的元凶干掉也就是通过kill发送SIGTERM或者SIFKILL信号如此的话由他产生的僵尸进程就变成了孤儿进程就会被init接管然后wait()这些孤儿进程即释放了 【二】守护进程 【1】什么是守护进程 守护进程时一种特殊的进程只要系统不关机就会一直存在 它们通常不与用户直接交互也不接受标准输入和输出而是在后台执行某种任务或提供某种服务。 守护进程往往是由系统管理员手动启动的它们可以在系统启动时自动启动一直运行在后台直到系统关闭或被停止而且不需要用户交互有较高的权限因此编写守护进程需要注意安全性和稳定性 常见的守护进程包括网络服务如web服务器、邮件服务器、ftp服务器、日志记录系统 例如安装一个MySQL服务TCP服务端关机会导致服务端关闭MySQL服务加一个守护进程只要系统不关机MySQL服务就会一直在后台运行除非主动杀死 示例 from multiprocessing import Process import time ​ ​ def task(name):print(f皇太妃 :{name}正常存活)time.sleep(2)print(f皇太妃 :{name}正常死亡) ​ ​ if __name__ __main__:print(f皇帝 : ChiMeng 执掌江山)p Process(targettask, args(dream,)) ​p.start() ​print(f皇帝 : ChiMeng 寿终正寝)# 主进程结束子进程未结束# 皇帝 : ChiMeng 执掌江山 # 皇帝 : ChiMeng 寿终正寝 # 皇太妃 :dream正常存活 # 皇太妃 :dream正常死亡
http://www.hkea.cn/news/14278613/

相关文章:

  • 南阳网站营销外包公司wordpress查看已删除的插件
  • 制作网站的发展前景如何设计网站做网站用什么软件
  • 网站内容设计基本原则在手机上自己制作游戏软件
  • 网站美工培训北京设计公司名称
  • 福州网站建设咨询网站上地图怎么做的
  • 网站设计 分辨率百度首页排名优化价格
  • 哪个协会要做网站建设啊喀什哪有做网站的
  • 门户网站做吗企业邮箱怎么获取
  • 网站搭建类型建商城站用WordPress
  • 大连建设网站wordpress怎么改端口
  • 安徽服饰网站建设松松软文
  • 小程序代码做网站php制作招聘网站
  • 专业做校园文化的网站省建设厅网站二建考试
  • 网站运营策略市住建设局网站
  • 网站建设邯郸最传统的网站推广手段
  • phpcms v9 网站名称标签58网站建设的目的
  • 建设官方网站的作用Wordpress怎么添加购买页面
  • 西安网站建设聂卫网站制作代码
  • 西安网站建设设计的好公司制作网站题材
  • 网站建设+公司辽宁大连直客部七部
  • 学院网站建设情况如何做一个门户网站
  • ps做网站连接莆田制作公司网站
  • 做网站建设一年能赚多少钱全网营销型网站
  • 公司网站设计报价网站优化西安
  • 冬季什么行业做网站比较多百度平台app下载
  • 做网站点击软件怎么建自己的网站?
  • 中山网站建设方案百度如何投放广告
  • 旅行社网站建设策划书网络编程技术清华大学出版社答案
  • phpcms适合做什么网站河南省工程建设协会网站
  • 做网站小程序多少钱国际物流网站建设