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

进程的创建与回收学习笔记

目录

一、进程内容:

二、进程常用命令 

三、创建子进程 

 四、子进程进阶

 五、进程的退出

 六、进程的回收


一、进程内容:

程序:

        存放在磁盘上的指令和数据的有序集合(文件)

        静态的

进程:

        执行一个程序所分配的资源的总称

        进程是程序的一次执行过程

        动态的,包括创建、调度、执行和消亡

进程是在内存中运行,即RAM

flash是ROM,即磁盘,可以存放程序

 

 

交互进程就是运行可执行文件,比如./testdemo

批处理进程,就是按顺序执行脚本语言

守护进程不能用ctrl-c关闭,无法通过shell命令控制

只有运行态在消耗CPU。

二、进程常用命令 

 

ps:查看当前终端下的进程

ps -e:查看linux中所有的进程

ps -elf:查看所有进程的详细信息

top -p PID:查看某个进程信息

 

 ctrl+z:把运行的前台进程转为后台并停止

./test & 把test程序后台运行

三、创建子进程 

 在linux下,除了0号进程外的任何进程都是别人创建的,都是子进程

 

运行结果:

 一个是父进程打印的,一个是子进程打印的。

 通过判断pid来确定父子进程执行的内容:

 运行结果:

父子进程仅仅复制关系,执行顺序没有规律,需要操作系统来进行调度。 

修改代码如下:

运行结果如下: 

 

 父子进程执行顺序是随机的


若父进程先结束

 此时子进程继续运行,不过变为后台进程,不能被ctrl-c杀掉,只能用kill杀掉。


若子进程先结束 

 此时子进程变成僵尸进程。

 四、子进程进阶

一个父进程创建出5个子进程 

代码如下:

 五、进程的退出

 

 

 

exit结束进程刷新缓冲流,会打印上一行,_exit结束进程不刷新缓冲流,不会打印上一行
“\n”和return就是刷新缓冲流。 

 六、进程的回收

 通过wait函数回收僵尸进程

代码运行结果:

 此时效果和使用wait函数一样。

 

http://www.lryc.cn/news/279773.html

相关文章:

  • 【CCNet】《CCNet:Criss-Cross Attention for Semantic Segmentation》
  • Qt QSQlite数据库插入字符串中存在单个双引号或单个单引号解决方案
  • Linux系统中的IP地址、主机名、和域名解析
  • soc算法【周末总结】
  • SpringBoot之优化高并发场景下的HttpClient并提升QPS
  • go-zero 如何在任意地方获取yaml中的值
  • C++20结构化绑定应用实例(二百五十六)
  • 改进YOLOv8注意力系列四:结合中心化特征金字塔EVCBlock、大核卷积注意力LKA_Attention、全局注意力MobileViTAttention
  • idea中使用Lombok 失效,@Slf4j 找不到符号的解决办法
  • MySQL修炼手册8:约束与完整性:保证数据的一致性
  • React入门 - 03(初识 React 组件和 JSX)
  • 华为OD机试 - 反射计数(Java JS Python C)
  • Linux系统中使用systemctl命令控制软件的启动和关闭
  • 2024年01月微软更新Bug 已解决 !Explorer.EXE 提示:Windows无法访问指定设备、路径或文件。你可能没有适当的权限访问该项目。
  • Qt/QML编程学习之心得:slider(34)
  • 使用metricbeat 监控多ES集群
  • 阿里云服务器+宝塔 (尝试部署一个最简单的静态页面)
  • 每日一题——LeetCode1160.拼写单词
  • 物联网协议Coap之Core和NetWork简介
  • Java SE入门及基础(10)
  • Docker五部曲之二:Docker引擎
  • 简单说一下原型与原型链
  • 11Spring IoC注解式开发(上)(元注解/声明Bean的注解/注解的使用/负责实例化Bean的注解)
  • k8s 部署Jenkins项目
  • #每日一题#力扣#2085.统计出现过一次的公共字符串
  • Python系列(1):简洁优雅,功能强大的编程语言
  • HarmonyOS应用开发学习笔记 arkTS自定义弹窗(CustomDialog)简单使用 arkTS弹出框回调、监听
  • RabbitMQ(六)消息的持久化
  • mybatisplus配置
  • node-sass@4.7.2 postinstall: `node scripts/build.js`