IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 多進程編程中父進程如何回收僵尸進程,經典中的經典

多進程編程中父進程如何回收僵尸進程,經典中的經典 時間:2018-06-27      來源:未知

多進程編程中會可能會產生僵尸進程,這些僵尸進程不斷蠶食系統資源,是系統變得越來越慢直至死亡,這種情況在并發模型中體現的尤為突出。這里分析下我們在多進程編程中如何解決這樣的問題。

首先我們寫一個例子:

#include

#include

#include

int main(int argc, char **argv)

{

int pid;

pid = fork();

if (pid > 0) {

printf("this is parent process, pid = %d\n", getpid());

while(1);

} else if (pid == 0) {

printf("this is child process, pid = %d\n", getpid());

printf("child process exit\n");

} else {

printf("create child process failed\n");

}

return 0;

}

本例中: 父進程創建子進程,進程完成移動工作后退出。運行效果如下:

this is parent process, pid = 3538

this is child process, pid = 3539

child process exit

使用ps -aux查看進程狀態

此時父進程3538狀態為R+而子進程狀態為Z+,通過查看ps命令文檔可的如下說明:

按照幫助文檔中說明:R為運行態,Z為僵尸(zombie)態。

回收僵尸進程我們可以用如下方法:

使用wait()或waitpid()函數。

#include

#include

pid_t wait(int *status);

pid_t waitpid(pid_t pid, int *status, int options);

wait: 父進程調用等待任一子進程退出。等同于waitpid(-1, &status, 0);

waitpid:

  

使用waitpid回收僵尸進程,如下:

C++ Code

#include

#include

#include

#include

#include

int main(int argc, char **argv)

{

int pid, cpid;

pid = fork();

if (pid > 0) {

printf("this is parent process, pid = %d\n", getpid());

while(1) {

cpid = waitpid(-1, NULL, 0);

fprintf(stdout, "waitpid pid = %d: %s\n", cpid, strerror(errno));

sleep(1);

}

} else if (pid == 0) {

printf("this is child process, pid = %d\n", getpid());

printf("child process exit\n");

} else {

printf("create child process failed\n");

}

return 0;

}

運行結果:

this is parent process, pid = 4085

this is child process, pid = 4086

child process exit

waitpid pid = 4086: Success

waitpid pid = -1: No child processes

waitpid pid = -1: No child processes
  ps -aux查看發現原來程序運行過程僵尸態的子進程已經不在了。已經不在了。

上一篇:進程標識符詳解,讓你對進程標識符有深入理解

下一篇:busybox文件系統制作步驟,帶你快速學習

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 油气回收设备厂家_加油站/化工厂油气回收装置解决方案-金辉环保 油漆颜料砂磨机,油墨水砂磨机,水性涂料砂磨机-常州市奥能达机械设备有限公司 | 极限软件园-绿色免费软件下载站| 聚丙烯酰胺,聚合氯化铝,重金属捕捉剂,污泥调理剂,活性氧化铝,生石灰,反渗透阻垢剂,工业葡萄糖,硫酸铝,果壳活性炭,柱状活性炭,蜂窝活性炭,石英砂,锰砂-北京雁归来环保科技有限公司-以真诚为立足之本,以质量为生存之本,愿与海内外同仁共创双赢。雁归来人一路走来,气贯长虹,勇锐盖过怯弱,进取压倒苟安!我们紧扣时代脉搏,专注水处理、继往开来! | 液压升降机_导轨式电动液压升降平台_别墅电梯生产厂家-海南重康升降机 | 中国焊接协会网站—中国焊接信息网;焊接行业最权威访问量最大的专业网站:焊接信息、焊接材料,焊接机器,焊接设备,焊机,焊材,辅助设备,焊机配件,仪器仪表,电动工具,钎焊,送丝机,表面处理,自动化专机,焊锡丝,助焊剂 | 气泡式洗菜机-气泡喷淋清洗机-喷淋清洗风干线-诸城市迪凯工业装备有限公司 | 天津印刷_天津印刷厂_天津印刷公司_天津包装盒厂家_天津包装盒印刷厂_七层共挤膜厂家_彩色印刷_画册印刷_礼品盒定做 _七层共挤膜_食品真空袋-欢迎访问嘉联包装官网! | 暨南大学穗华口腔医院【官网】| 上海山田机械有限公司| 重庆木门_重庆木门十大品牌_重庆套装门_重庆烤漆门_重庆套装门十大品牌_重庆木门一线品牌_重庆川田木门 | 宜宾三江人才网_三江人才网_宜宾三江人才网_三江人才直聘网是本地颇具规模的网上人才市场 | 医药招商 千虹医药网-专业的医药招商-医药代理-药品招商-药品代理信息发布平台 | 汽车智能防撞系统_智能刹车_77G毫米波雷达_麒云科技疲劳驾驶预警 | 乌兰察布市集宁牧田饲料科技有限公司-乌兰察布奶牛饲料|饲料原料加工|精品羊料 | 装修工程-钢结构工程-环氧地坪漆-东莞市远鸣装饰工程有限公司 | 乌鲁木齐万疆通管道设备有限公司 销售热线;13565955557-新疆 乌鲁木齐 万疆通 管道设备 波纹补偿器 膨胀节 金属软管 伸缩器 管件 阀门 维修 | 天津市力豹润滑科技有限公司| 企业资质认证-上海翼弘企业咨询管理有限公司 | 亿企商贸-亿万企业的商务贸易平台-B2B企业产品发布供求信息平台,一带一路中国企业及产品展示平台,免费企业智能自助建站网络营销推广平台,打造B2B企业黄页产品信息发布推广专业综合电子商务平台! | 净化塔_喷淋塔_脱硫塔_河北宝飞华创玻璃钢制造有限公司-河北宝飞华创玻璃钢制造有限公司 | 烟台真空包装,烟台木包装,烟台熏蒸木箱-烟台福岭木制品有限公司 烟台通风管道,烟台风机风管,烟台风阀-烟台福莱通风设备有限公司 | 景德镇水流星陶瓷文化传播有限公司 | 上海家博会_2025上海家博会时间表_5月31-6月2日_上海家博会门票_免费领取入口 | 新乡市德诚机电制造有限公司_筛分设备_振动筛机_颗粒筛选机 | 小耳朵电源_安防监控电源|小耳朵官网|电源适配器|摄像机电源|开关电源|小耳朵监控电源 | 沈阳资质代办_代办建筑资质「快」-【华廷元】沈阳代办公司首页- 沈阳机电一体化电热锅炉_沈阳蓄热式电锅炉_沈阳壁挂式电锅炉【沈阳远鹏电热供水设备工程安装有限公司】 | 郑州课桌椅|学生课桌椅|升降课桌椅批发|厂家|价格-新科教育用品 郑州井盖雨水篦子厂家-建联建材 | 南京企业宣传片制作,广告形象片,影视制作,宣传片拍摄,微电影拍摄制作公司 | 温州合发模架科技有限公司 | 联想南京总代理-联想服务器|联想电脑笔记本代理商|联想工作站|dell服务器|HP服务器|南京IBM代理商|IBM V5000存储总包销-南京宇宽科技有限公司 | 清洗剂-防锈油-润滑油-嘉信供应链一站式供应厂家 | 维启科技-创造科技的无限可能 | 上海维启信息技术有限公司 建筑仿真 BIM 虚拟现实 VR AR 顶岗实习 建筑智能模型 | 上海钧尚电器有限公司 - Faulhaber电机 AMETEK pittman电机 AMETEK ROTRON军用航空风机 Exlar电动缸 MAE电机 MCG电机 CP电动工具 马头工具 AMCI驱动器 直流电机 减速箱 直流伺服电机,无刷电机,直线电机 直流防爆电机 防爆电机 汽车助力转向电机 EPS电机 faulhaber motor faulhaber gearbox NANOTEC电机 ELWOOD电机 PHYTRON电机 EXLAR伺服电动缸 高力矩、高性能直流电机,音圈电机,风机,直流风机,航空风机 | 土石_泥石分离机_无轴滚筒筛_振动筛 - 巩义市鑫利重工机械制造有限公司 | 深圳钢成培训专业从事,五轴培训,车铣复合培训,数控车床,CNC数控编程,模具编程 ,钣金机械与模具设计,powermill,mastercam,solidworks,ug,hypermill培训 | 水泥纤维瓦机 石棉瓦机 硅酸钙板生产线 | 钻机配件-岩心管-岩心管接箍-地质套管-煤矿用钻头-河南滨远机械设备有限公司 | 真空工业炉-真空油淬炉-真空气淬炉-高温石墨化炉-江苏华弘真空科技有限公司 | 摩托车-摩托车配件-摩托车与配件_摩托车与配件行业权威的门户网站! | 双螺杆挤压膨化设备_挤压熟化设备_烘干设备_油炸设备及喷涂调味设备-山东铭本机械科技公司 | 廊坊纳科新材料技术有限公司--纳科新材料技术有限公司|廊坊纳科新材料|纳科新材料技术 |