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

网站建设教学工作总结品牌网站策划

网站建设教学工作总结,品牌网站策划,苏州大学网站建设目标,深圳外贸英文网站设计公司哪家好子进程无论是正常或异常退出#xff0c;内核都会向父进程发送信号 SIGCHILD.#xff0c;因为无论是使用wait函数#xff08;阻塞#xff09;#xff0c;还是使用waitpid(得循环判断#xff09;都会将父进程阻塞住#xff0c;而不能执行别的操作#xff0c;所以#xf… 子进程无论是正常或异常退出内核都会向父进程发送信号 SIGCHILD.因为无论是使用wait函数阻塞还是使用waitpid(得循环判断都会将父进程阻塞住而不能执行别的操作所以如果父进程还需要执行别的操作就将wait/waitpid函数置于信号捕捉函数中就可以解决这个问题了当然也可以在父进程中单独起个线程来解决。 wait函数、waitpid函数每次都只能回收一个子进程。 参考该文。 wait函数是通过waitpid函数封装的 static inline pid_t wait(int * wait_stat) {     return waitpid(-1,wait_stat,0); } 1、区别1返回值的区别 wait函数只有两个返回值 成功返回回收的子进程id; 失败返回-1errno被置为ECHILD。调用进程没有子进程调用就会失败wait函数用这个条件来判断是否还有子进程没有回收), waitpid函数的第三个参数设置为WNOHANG 时返回值相较wait多了一种返回值waitpid发现当前进程在运行没有已退出的子进程可收集则立即返回返回值为0当所有的子进程都已回收则返回-1.这一点与wait是一样的同样可以根据这个参数来判断是否还有子进程没回收 2、区别2 wait函数会阻塞等待子进程的退出。 waitpid函数当第三个参数使用WNOHANG时无子进程退出也会立刻返回返回值为0 3、回收多个子进程 使用waitpid来循环回收子进程不需要知道子进程的数量 方法一使用信号,在捕捉函数中调用waitpid 此处使用了信号的形式来else if (pid 0) {Close(connfd);signal(SIGCHLD,wait_child);} main函数外定义回调函数void wait_child(int signo) {while(watipid(0,NULL,WNOHANG0); //大于0则继续回收return; } 方法二直接在父进程中调用waitpid,参考该文。 while(1) /*无限循环保证所有子进程全部回收*/{pid_t wpid waitpid(-1/*回收任何子进程*/, NULL, WNOHANG);if(wpid -1){break; /*如果返回-1说明已经没有子进程了退出循环*/}if(wpid 0){printf(wpid: %d\n, wpid); /*打印被回收的子进程的ID*/}}//while循环中没有使用sleep函数也就是说没有进程可回收就立马返回。//这个函数其实还可以再加一句 if(wpid0)continue; 使用wait函数来循环回收子进程wait函数是阻塞进程的,参考该文 使用wait()回收多个子进程 首先使用wait()函数来回收多个子进程我们可以在一个for循环中等待子进程的结束创建了几个子进程就for循环等待几次代码如下 /************************************************************File Name : mutipwait.cAuthor : MindtechnistCompany : MindtechnistCreate Time: 2022年05月20日 星期五 17时23分57秒 ************************************************************/ #include stdio.h #include stdlib.h #include unistd.h #include sys/types.h #include sys/wait.hint main(int argc, char* argv[]) {int i 0;pid_t pid;for(i 0; i 5; i){pid fork();if(pid 0){printf(child: %d\n, getpid());break;}}sleep(i);if(i 5) /*只有父进程可以执行到i5*/{for(i 0; i 5; i){pid_t wpid wait(NULL);printf(wpid: %d\n, wpid);}while(1){sleep(1);}}return 0; } //使用wait函数循环回收子进程是否也可以向waitpid一样可以不知道进程个数呢 这个待测试while(wait(NULL)0);
http://www.zqtcl.cn/news/184912/

相关文章:

  • 邢台建设银行官方网站为什么建设网站很多公司没有
  • 闵行做网站费用湖南正规网络营销哪家便宜
  • 找个公司做网站需要注意什么wordpress用户名长度
  • 推荐几个没封的正能量网站营销技巧和营销方法视频
  • html mip 网站桂林市临桂区
  • 做网站如何月入10万建行app怎么注册登录
  • 建设一个旅游网站毕业设计建设网站的功能定位是什么原因
  • wordpress网站导航模板杭州建设网站的公司
  • 如何做视频解析网站wordpress 关闭评论
  • 安福网站建设微信开发者工具怎么下载
  • 网罗设计网站威海网页设计制作公司
  • 网站用cmswordpress插件怎么做
  • 如何办好公司网站元器件网站搭建
  • 建设领域行政处罚查询网站wordpress数据库发文章
  • 怎么做网页的多开器宿迁seo优化
  • 别人帮做的网站怎么修改病句店铺引流的30种方法
  • 网站备案幕布怎么申请绍兴cms建站模板
  • 做网站熊掌号软件设计公司排名
  • 深圳 做网站学做西点的网站
  • 静态网站安全性百度服务平台
  • 网站vi设计公司网站建设app
  • 书店网站建设策划书总结每天看七个广告赚40元的app
  • 做网站的属于什么专业成都广告制作安装公司
  • 天津市网站建设公司网站制作费用
  • 网站制作公司 郑州wordpress图片中文不显示解决
  • 网站建设模式有哪些方面jquery做的装修网站
  • 佛山手机建网站企业网站公司单位有哪些
  • 给企业做网站的平台有没有专门做衣服搭配的网站
  • 青岛本地网站最近军事新闻大事
  • 潍坊哪里有做360网站的成都官微最新发布