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

企业网站开发创意永久观看不收费的直播

企业网站开发创意,永久观看不收费的直播,wordpress缺陷,深圳网址排名进程等待 为什么要进行进程等待 进程等待是什么#xff1f; 怎么进行进程等待#xff1f; 回到我们之前进程状态的代码#xff0c; 我们知道#xff0c; 在这段代码中#xff0c;父进程对子进程没有做任何的操作#xff0c; 所以当子进程在退出后#xff0c; 会一直处于…进程等待 为什么要进行进程等待 进程等待是什么 怎么进行进程等待 回到我们之前进程状态的代码 我们知道 在这段代码中父进程对子进程没有做任何的操作 所以当子进程在退出后 会一直处于僵尸状态。 如果想要对子进程进行处理 我们父进程调用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://www.eeditor.cn/news/124268/

相关文章:

  • 怎么下载自己做的网站wordpress 图片大小设置
  • 建设网站视频素材韩国做美食网站
  • 做电商网站需要做什么准备常州网站建设优化
  • 梨树县住房和城乡建设局网站一个人做商城网站
  • 做公众号时图片的网站w7系统那个网站做的好
  • 图片网站怎么做优化科技公司一般是做什么
  • flash网站引导页面制作公司产品网站
  • 阿里云虚拟主机购买云优化seo
  • 表白网站wordpress 百度软件
  • 上海网站建设 方案域名备案查询网站
  • 网站的维护费用航佳网站建设
  • 电脑手机网站相互跳转网站多个域名备案
  • 格力网站建设首页网站服务器ip更换
  • 网站建设时间及简介在c盘做网站可以吗
  • 网站怎么上传源码网络营销制度课完整版
  • 网站做优化有用吗个人接做网站多少钱
  • 如何管理网站文件wordpress 迁移 步骤
  • 网站开发注意软件开发设计文档示例
  • 手机版网站建设珠宝行业网站建设
  • 如何做外贸网站wordpress 极简模板
  • 网站 建设 领导小组a5网站诊断
  • 网站排名关键词ios wordpress
  • 做电影网站怎么选服务器WordPress老文章提示
  • 自己做手机版网站制作河南省建设部网站官网
  • 镇江企业网站排名优化网站建设交互效果
  • 怎么查看网站后台地址高端网站改版
  • 三网合一网站远吗云南网站建设选天软
  • 盗版小说网站怎么做的typo3 wordpress
  • 安家堡网站建设怎么把底部的wordpress
  • 高密做网站的价格曹鹏wordpress视频教程