当前位置: 首页 > 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.pierceye.com/news/184912/

相关文章:

  • 网站排名优化软件江西网站备案要求
  • 桐柏县建设局网站邢台建设局网站
  • 网站域名变更怎么查英国做网站的人
  • 嘉兴公司的网站设计wordpress 送女友
  • 10个免费的黑科技网站电子元器件商城网站建设
  • 动画型网站做免费推广的平台
  • 购物网站怎么创建深圳地区5g微波网站建设计划
  • 安做省民改厅网站网站带支付模板
  • 做什么网站吸引人建设网站模板
  • 微信官网网站模板京东云网站建设
  • python 网站开发 前端利用vps做网站
  • 网站做下载功能南昌专业做网站的
  • 白山网站设计网站首页鲁大师
  • 网站怎样和首页做链接地址七星彩的网站怎么做的
  • 深圳h5模板建站wordpress 整合ucenter
  • 企业网站策划书下载google adsense
  • 安徽网站建设公司排名竞价托管就选微竞价
  • 笑话小网站模板html做移动网站快速排
  • c2c电子商务网站有哪些电商设计师和美工有什么区别
  • 长春电商网站建设价格低公司网站过期未续费会怎样
  • 农业综合管理网站建设做网站前期工作
  • 域名更换网站网站维护工作内容
  • 网站水印设置作教程长沙求职网招聘网
  • 八年级微机网站怎么做wordpress 链接转换
  • ppt做的模板下载网站有哪些内容wordpress 4.5.3中
  • 网站开发需求文档prd模板iis wordpress 404
  • 灰色链网站建设偃师建网站那家公司好
  • 文化网站前置审批网站运营系统
  • 现在做网站用什么学校网站的建设需求
  • 网页制作与网站建设技术大全 pdfhtml5移动端网站开发教程