程序、进程、线程、协程结构图
创作时间:
作者:
@小白创作中心
程序、进程、线程、协程结构图
引用
CSDN
1.
https://blog.csdn.net/Lzy1154119938/article/details/139303361
程序、进程、线程和协程
程序(Program)
- 指的是编写好的源代码文件或者可执行文件
- 是静态的,存储在磁盘上
进程(Process)
- 是程序执行的一个实例
- 拥有自己的地址空间、资源、状态等
- 是系统分配资源的基本单位
- 可以独立运行、调度和管理
- 进程之间相互独立,需要通过进程间通信(IPC)进行交互
进程的特点
- 独立性:每个进程都有自己的地址空间和资源
- 隔离性:进程之间相互隔离,不会相互影响
- 并发性:多个进程可以同时执行
- 可抢占性:操作系统可以暂停当前进程并切换到其他进程
线程(Thread)
- 是进程内的一个执行单元
- 共享进程的地址空间和资源
- 是系统调度的基本单位
- 线程之间共享相同的上下文和全局变量
- 可以提高程序的并发性和响应性
线程的特点
- 共享性:线程共享进程的资源和地址空间
- 并发性:多个线程可以同时执行
- 高效性:创建和销毁线程比进程开销小
- 有限性:受限于进程的地址空间和资源
协程(Coroutine)
- 是一种轻量级的线程
- 在用户空间中实现,不依赖于操作系统的线程调度
- 可以暂停和恢复执行
- 协程之间可以相互切换,但不是被操作系统调度,而是由程序自身控制
协程的特点
- 用户空间实现:不依赖于操作系统的线程调度
- 轻量级:协程的创建和切换开销小
- 灵活性:可以在程序中自由切换和调度
- 适用性:适用于IO密集型任务和高并发场景
程序、进程、线程和协程作为最小单元关系的结构图
在这个结构图中:
- 程序是编写好的源代码文件或者可执行文件,是静态的。
- 进程是程序执行的一个实例,拥有自己的地址空间、资源等。
- 进程内包含多个线程,线程共享进程的地址空间和资源。
- 线程是进程内的一个执行单元,是系统调度的基本单位。
- 线程内包含多个协程,协程是一种轻量级的线程,可以在用户空间中实现,不依赖于操作系统的线程调度。
总结
- 线程是进程的最小执行单元,一个进程可以包含多个线程,它们共享进程的地址空间和资源,是操作系统调度的基本单位。
- 协程是轻量级的线程,是线程的最小执行单元,它在用户空间中实现,不依赖于操作系统的线程调度。协程之间可以自由切换,但不会被操作系统调度,而是由程序自身控制。
这种区分可以帮助我们理解它们在并发编程中的不同作用和特点。
进程、线程和协程之间的通信方式
进程之间通信(Inter-Process Communication, IPC)
- 管道(Pipe):管道是一种半双工的通信方式,数据只能单向流动。通常用于具有亲缘关系的进程之间的通信。
- 命名管道(Named Pipe):命名管道是一种有名字的FIFO文件,允许无关的进程之间进行通信。
- 消息队列(Message Queue):消息队列是一个消息链表,允许一个或多个进程通过消息进行通信,消息可以是结构体等复杂数据类型。
- 信号量(Semaphore):信号量是一种计数器,用于控制对共享资源的访问,允许多个进程之间进行同步和互斥操作。
- 共享内存(Shared Memory):共享内存是一块被多个进程共享的内存区域,允许多个进程之间直接读写共享的数据,需要配合信号量等进行同步。
- 套接字(Socket):套接字是一种基于网络的通信方式,允许不同主机上的进程进行通信。
线程之间通信(Inter-Thread Communication)
- 锁机制(Lock):线程通过互斥锁(Mutex)或读写锁(ReadWrite Lock)来保护共享资源的访问,只有拥有锁的线程才能访问共享资源。
- 条件变量(Condition Variable):线程通过条件变量来实现线程之间的等待和唤醒,允许线程在特定条件下等待或被唤醒。
- 信号量(Semaphore):信号量也可以用于线程之间的同步和互斥操作,允许多个线程之间进行同步。
- 屏障(Barrier):屏障允许一组线程在某个点上进行同步,当所有线程都达到该点后才能继续执行。
- 消息队列(Message Queue):一些线程库提供了消息队列的实现,允许线程之间通过消息进行通信。
协程之间通信
协程之间通信相对较为简单,通常通过共享全局变量来实现。由于协程在用户空间中运行,不涉及系统调度,因此不需要像进程或线程那样复杂的同步机制。协程通常在同一个线程内运行,它们共享该线程的内存空间,因此可以直接访问和修改全局变量。
热门推荐
AI赋能课堂 数据驱动教学——AI课堂助力语文教学优化
肝癌晚期怎么治疗好
PMP项目管理考试复习全攻略
PMP备考资料推荐:5大必备资源清单
9个有效延寿习惯,最长可延寿15年!第一名让人意想不到
风靡日本的“K-Car”,为什么中国没有?
中国历史上的十大顶级诗人,前5神仙打架,对后世影响深远
电动车防盗措施全面讲解
麻省理工学院哲学专业如何申请
探秘山海经中的十大神树与长生不老的传说
亮丽肌肤背后的危机:化妆品汞中毒的风险与防范
佛教与道教哪个更强大?宗教哲学比较
武汉大学调整参观政策:社会公众无需预约,刷身份证即可入校
怎么用Excel对职业打分
如何搭建一套完整的评分模型:从理论到实操
哪些药品可以医保报销?手把手教你查→
广西大学最新排名及专家点评:实力强劲,就业前景广阔
对称性与变换的性质与应用的学习与探索
Win10系统优化设置,让你的游戏体验更流畅
中国传统文化的对联
提升嵌入式开发效率:精选编程技巧大全
芹菜十大枣怎么做能治耳鸣吗
猫咪为啥会炸毛?盘点猫咪炸毛的原因
叮!奉节警方向您发送了一份“微信木马投毒骗局防范指南”
玄武门之变:权力斗争与历史真相
数学一对一辅导机构选择指南:教学效果与个性化服务对比分析
且行且珍“膝”!一文读懂“髌骨骨折”的诊断与治疗,超详细!
小车撞死人保险公司赔偿标准及借用他人车辆发生事故时的保险责任问题
什么是kdj的有效金?如何判断kdj有效金的准确性?
吊顶后怎么安装晾衣架,应该注意什么事项?