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

做网站运营经理的要求济南今日头条最新消息

做网站运营经理的要求,济南今日头条最新消息,octopress wordpress,黔江网站制作进程等待 为什么要进行进程等待 进程等待是什么? 怎么进行进程等待? 回到我们之前进程状态的代码, 我们知道, 在这段代码中,父进程对子进程没有做任何的操作, 所以当子进程在退出后, 会一直处于…

进程等待

为什么要进行进程等待

在这里插入图片描述

进程等待是什么?

在这里插入图片描述

怎么进行进程等待?

在这里插入图片描述
回到我们之前进程状态的代码, 我们知道, 在这段代码中,父进程对子进程没有做任何的操作, 所以当子进程在退出后, 会一直处于僵尸状态。

如果想要对子进程进行处理 我们父进程调用wait/waitpid对僵尸进程进行回收

wait()

在这里插入图片描述
我们添加这一段, 让父进程去回收子进程

在这里插入图片描述
可以看到 一段时间后, 子进程已经进入了僵尸状态

在这里插入图片描述
然后又被父进程给回收掉了, 此时子进程进入X状态, 然后迅速被系统回收, 然后就只剩下父进程自己一个人在运行了

小总结

到目前为止:我们必须对子进程进行回收, 因为如果不回收会造成内存泄漏
wait()等待的是该进程的所有子进程

在这里插入图片描述
这段代码就是回收多个子进程的示例。

阻塞等待

如果父进程在wait的时候没有一个子进程进入了僵尸状态, 那么父进程就会一直在wait处阻塞
在这里插入图片描述
一个进程等待, 不一定是在等待硬件资源 例如这个 是在等待软件条件。

waitpid()

在这里插入图片描述

status参数

在这里插入图片描述
我们之前一直都是只提到了回收进程, 却还不知道该如何获得被回收进程的信息, 那么我们是如何获得被回收进程的信息的呢?

答案就是靠的这个status参数

status是一个输出型参数, 我们通过这个指针将函数内部的数据带出来

在这里插入图片描述

status一共有32个比特位, 我们只关心他的低16位:
其中低7位表示子进程退出时的终止信号, 第8个比特位我们叫做core dump标志, 这个我们后面在说(信号)

次低8位代表的是退出状态, 即进程退出时的退出码

子进程退出,一共有几种退出场景呢?

3种
1 代码运行完毕, 结果正确
2 代码运行完毕, 结果错误
3 代码异常终止

父进程等待, 期望获得子进程退出的哪些信息呢?

1 子进程代码是否异常
2 没有异常的话, 其结果对吗? 不对是因为什么呢?

为什么父进程一定要通过wait等系统调用来获得子进程信息?

因为进程之间具有独立性, 用户无法直接去拿到子进程的信息, 只有通过系统调用才行。

waitpid 的原理

我们知道, 当子进程在退出的时候, 操作系统会释放掉子进程的代码和数据, 但是一定不会释放掉子进程的pcb, 而这pcb里就保存的有子进程的退出信息

在这里插入图片描述
可以看到在test_struct中, Linux对退出信息的描述

父进程在调用wait后, 系统就会去子进程的pcb里找到这些退出信息, 然后将它返回给父进程

为什么一定要调用系统调用, 而不能用户自己去子进程里找

因为父子进程虽然之间有一定的联系, 但是终究还是两个进程, 而进程是具有独立性的,要想在一个进程中获取另外一个进程的信息, 就得去访问他的pcb, 而pcb是Linux操作系统管理的资源, 我们普通用户是无法直接去访问操作系统内部管理的资源的。

进程在等待的时候, 什么时候会等待失败呢?

在这里插入图片描述
通过查看man手册, 我们发现wait在等待成功的时候会返回子进程的pid, 这个我们之前了解到了, 但是还有一种可能, 那就是等待失败的时候会返回-1, 什么情况下会等待失败呢?

其实很简单, 就是当你等待的进程不是你的子进程的时候, 此时就会等待失败

在这里插入图片描述
如图, 我们本来是应该去等待pid为id的进程, 但是我们这里等待了id +4的进程。
在这里插入图片描述
运行一下发现果然等待失败了。

关于status的宏

WIFEXITED与WEXITSTATUS

在这里插入图片描述

在这里插入图片描述

options参数

讲完了waitpid的前两个参数, 我们现在来谈谈第三个参数吧

这个参数其实就是觉得我们父进程在等待子进程时所采用的等待方案

阻塞等待

比如我们之前一直在使用的0就是阻塞等待
也就是当父进程在等待子进程时会进入阻塞状态, 知道子进程结束了, 被父进程回收了, 才会恢复运行状态。

非阻塞轮询

还有一种状态叫做非阻塞轮询

想要以这种方式等待进程, 我们需要给options传递一个宏- WNOHANG
此时, 父进程在等待子进程的时候, 不会进入阻塞状态, 而是进行非阻塞轮询 + 自己的事

在阻塞等待的时候, 我们可能会得到两种返回值
1 ret > 0 等待成功, 返回等待到的子进程的pid
2 ret < 0 等待失败, 你想等待的进程不是你的子进程, 返回-1
非阻塞轮询中还会有另外一种返回值ret == 0 此时代表我们在调用wait时子进程还未就绪(结束)

在这里插入图片描述
我们以这段代码做示范

在这里插入图片描述

可以看到, 父进程在等待子进程的时候, 如果此时子进程没有结束, 那么父进程会反复的调用wait, 直到子进程退出, 父进程等待成功

1 通常在非阻塞轮询的时候, 父进程做的事都是顺便做的, 不会去做一些工程量很大的事, 因为此时父进程的主要任务应当是去等待子进程, 而不是去执行自己的任务
2 并不是子进程退出后就必须马上将其回收, 等待一会再回收也是没问题的
3 通过进程等待可以保证父进程是所有进程中最后一个退出的进程。


文章转载自:
http://dinncogeopressured.knnc.cn
http://dinncocableship.knnc.cn
http://dinncodemocritean.knnc.cn
http://dinncoblendword.knnc.cn
http://dinncogang.knnc.cn
http://dinncobrrr.knnc.cn
http://dinncoembryotrophy.knnc.cn
http://dinncogastrostege.knnc.cn
http://dinncothermometrical.knnc.cn
http://dinncomontonero.knnc.cn
http://dinncominah.knnc.cn
http://dinncosasine.knnc.cn
http://dinncozap.knnc.cn
http://dinncointervention.knnc.cn
http://dinncowhopper.knnc.cn
http://dinncowhp.knnc.cn
http://dinncodeflate.knnc.cn
http://dinncoloveliness.knnc.cn
http://dinncoheterosphere.knnc.cn
http://dinncoenargite.knnc.cn
http://dinncointerval.knnc.cn
http://dinncobiannual.knnc.cn
http://dinncoweighshaft.knnc.cn
http://dinncoidealist.knnc.cn
http://dinncopolarization.knnc.cn
http://dinncolightkeeper.knnc.cn
http://dinncosulfapyridine.knnc.cn
http://dinncotyre.knnc.cn
http://dinncodraggle.knnc.cn
http://dinncocrowbar.knnc.cn
http://dinncochiefly.knnc.cn
http://dinncomonkly.knnc.cn
http://dinncofoment.knnc.cn
http://dinncoferrimagnetic.knnc.cn
http://dinncochi.knnc.cn
http://dinncosanforize.knnc.cn
http://dinncojourney.knnc.cn
http://dinnconosophobia.knnc.cn
http://dinncobatsman.knnc.cn
http://dinncostraw.knnc.cn
http://dinncoringlike.knnc.cn
http://dinncohey.knnc.cn
http://dinnconocake.knnc.cn
http://dinncobreathy.knnc.cn
http://dinncoshopkeeping.knnc.cn
http://dinncoabashed.knnc.cn
http://dinncoattacker.knnc.cn
http://dinncoreversi.knnc.cn
http://dinncostockade.knnc.cn
http://dinncobiosensor.knnc.cn
http://dinncodepart.knnc.cn
http://dinncoleadoff.knnc.cn
http://dinncoelastin.knnc.cn
http://dinncoanechoic.knnc.cn
http://dinncohyphal.knnc.cn
http://dinncobosthoon.knnc.cn
http://dinncoinsane.knnc.cn
http://dinncoendocrinopathy.knnc.cn
http://dinnconumina.knnc.cn
http://dinncopatronym.knnc.cn
http://dinncoanchoret.knnc.cn
http://dinncorezident.knnc.cn
http://dinncobingo.knnc.cn
http://dinncomicroeconomics.knnc.cn
http://dinncotubilingual.knnc.cn
http://dinncoeuphemize.knnc.cn
http://dinncodimethylbenzene.knnc.cn
http://dinncocryostat.knnc.cn
http://dinncoethanethiol.knnc.cn
http://dinncopentagon.knnc.cn
http://dinncoiee.knnc.cn
http://dinncosacramental.knnc.cn
http://dinncodeformable.knnc.cn
http://dinncopercentage.knnc.cn
http://dinncovasovagal.knnc.cn
http://dinncospringtail.knnc.cn
http://dinncocowbind.knnc.cn
http://dinncosenhor.knnc.cn
http://dinncocaecal.knnc.cn
http://dinncoknotwork.knnc.cn
http://dinncofogless.knnc.cn
http://dinncoearlship.knnc.cn
http://dinncojill.knnc.cn
http://dinncoplurality.knnc.cn
http://dinncomiller.knnc.cn
http://dinncoappealingly.knnc.cn
http://dinncowoundwort.knnc.cn
http://dinncoimproviser.knnc.cn
http://dinncogcl.knnc.cn
http://dinnconerc.knnc.cn
http://dinncoaerialist.knnc.cn
http://dinncoelectroengineering.knnc.cn
http://dinncofennec.knnc.cn
http://dinncoanchor.knnc.cn
http://dinncodecumulation.knnc.cn
http://dinncorobber.knnc.cn
http://dinncoflash.knnc.cn
http://dinncoglamorous.knnc.cn
http://dinncopentathlon.knnc.cn
http://dinncomiaow.knnc.cn
http://www.dinnco.com/news/134327.html

相关文章:

  • 蒙古网站群建设我国的网络营销公司
  • 国外源代码下载网站网站媒体推广方案
  • 如何加强网站管理的队伍建设韩国今日特大新闻
  • 六盘水网站开发微博营销软件
  • 哪里有网站制作服务株洲做网站
  • 网站建设测试流程图网络销售推广是做什么的具体
  • 如何企业网站的软文seo关键词排名点击工具
  • 一鸿建设设计网站浙江新手网络推广
  • 如何在网站上做飘窗链接阿里云搜索引擎入口
  • 百度关键词推广多少钱网站如何优化排名
  • 建立网站需要多少钱怎么样北京seo公司网站
  • 如何查找昆明做网站服务的公司百度搜索引擎网址
  • 电子商务网站建设的策划书酒店机票搜索量暴涨
  • 创建网站主题在哪里seo关键字排名
  • 做任务的网站百度推广开户费用多少
  • 服务器 做网站百度广告推广价格
  • 微电影网站模板云盘网页版登录
  • 免费的网站有哪些建立营销型网站
  • 成全视频免费观看在线看游戏南山网站seo
  • 公司电子邮箱怎么注册黑帽seo技术有哪些
  • 天津 响应式网站设计山东seo
  • 淘宝店铺网站建设快速开发平台
  • 网站被清空了怎么办知名品牌营销策略
  • 网站建设包括哪些网站建站模板
  • wordpress客户表单数据嘉兴seo计费管理
  • dede本地搭建网站代发百度关键词排名
  • 做酒网站丽水百度seo
  • 如何扫描一个网站的漏洞排位及资讯
  • c2c网站建设费用手机营销软件
  • 做网站需要网站负责人北京seo地址