| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言-进程的API(2022详细带例子注释) -> 正文阅读 |
|
[C++知识库]C语言-进程的API(2022详细带例子注释) |
目录 ? 一、进程状态查询命令1.查看进程 ID 号:ps-ef(静态) 2.查看进程CPU占用率:top(动态) 二、什么是僵尸态进程结束时,就从运行态变成僵尸态,所谓僵尸态,就是代表这个进程所占用的CPU资源和自身的任务结构体没有被释放,这个状态的进程就是僵尸态进程。 总结: 1)进程在暂停态时,收到继续的信号时,是切换到就绪态,而不是运行态。 2)程序的main函数执行return 0就会导致进程的退出,一定会变成僵尸态。 3)进程不可以没有父进程,也不能同时拥有两个父进程。 4)孤儿进程特征就是失去父进程时,会马上寻找继父,而不是等到孤儿进程变成僵尸态再找。 5)祖先进程一定要帮其他的进程回收资源。 三、进程的接口函数1、单进程和多进程的区别(1)单进程程序 -> 只能一行行代码去执行。 (2)多进程程序 -> 同时执行两行代码 -> 产生一个子进程,帮自己处理另外一件事情。 2、进程的创建
例子:
结果:
?3、查询进程自己的PID号以及它父进程的PID号
例子:
结果:
? 四、僵尸进程和孤儿进程1、僵尸进程僵尸进程:父进程还存在,但是去做的别的事情了(比如在一个死循环,没有退出),此时子进程退出之后,就变成了僵尸进程。(可以用ps -ef 查看,进程的状态栏为defunct,这就是所谓的“僵尸”进程)。 ?测试僵尸进程:
??注意:此时父进程一直在执行没有退出,导致子进程成了僵尸进程。 2、孤儿进程孤儿进程:一般情况下,调用fork()函数创建的子进程,父进程如果比子进程先退出,那么这个子进程称之为 孤儿进程。那么,祖先进程systemd 就会成为该子进程的父进程,回收该子进程的资源。 测试孤儿进程:
? ?注意:父进程进程完退出,而子进程还没退出,此时就成为了孤儿进程。 五、解决僵尸进程wait属于一个阻塞函数,如果子进程没有退出变成僵尸态,那么这个函数就会阻塞,直到子进程变成僵尸态之后,才会将子进程的资源回收。status还可以保存子进程的退出状态。 1、创建wait
2、没有使用wait的情况代码:
结果:
?3、使用wait的情况代码:
结果: ?六、进程的退出(1)exit? (2)_Exit(3)_exit 代码:
结果:
? |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 6:57:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |