C++学习笔记--多进程

本文探讨了C++中的多进程编程,详细解释了进程和线程的概念,两者之间的区别,以及Linux下如何实现多进程。进程是程序的一次动态执行,拥有独立的资源,而线程是CPU调度的最小单位,共享进程资源。文章通过对比分析,阐述了进程和线程在资源消耗、通信方式等方面的差异,并简要介绍了Linux系统中多进程的编程实现。
摘要由CSDN通过智能技术生成

C++并发编程有多线程和多进程两种方式,本文主要讲述进程和线程的概念,以及两者的区别,然后简单讲述如何使用Linux API进行多进程编程,多线程编程使用C++标准库即可实现,请参考C++学习笔记–多线程

1 进程概念

进程是程序的一次动态执行过程。程序本身只是指令的集合,进程才是程序的真正运行,用户运行程序就产生了进程,用户关闭程序就结束了进程。一个程序可以产生多个进程,但一个进程只能由一个程序产生。进程有5种生命周期状态:创建、就绪、运行、阻塞、退出,下图表示了5种状态之间的关系。
进程的5种状态
与上面的5种状态不同,在Linux中使用top命令查看进程也有5种状态,但它是以不同的角度来描述进程状态:
R:运行状态,正在运行或在运行队列中等待
S:可中断(自愿)的睡眠状态,在等待某事件发生才可唤醒。如网页服务器的httpd进程,在客户端(浏览器)发出请求之前,服务器无事可做,选择睡眠。是程序角度的睡眠,程序本身控制自己的运行状态
D:不可中断(非自愿)的睡眠状态,有时两个进程试图同时访问同一系统资源,例如一个进程试图从磁盘数据块上读取信息,而另一个进程正在向该数据块写入信息。在这种情况下,内核迫使进程进入非自愿

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值