程序、进程、线程、协程结构图
创作时间:
作者:
@小白创作中心
程序、进程、线程、协程结构图
引用
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):一些线程库提供了消息队列的实现,允许线程之间通过消息进行通信。
协程之间通信
协程之间通信相对较为简单,通常通过共享全局变量来实现。由于协程在用户空间中运行,不涉及系统调度,因此不需要像进程或线程那样复杂的同步机制。协程通常在同一个线程内运行,它们共享该线程的内存空间,因此可以直接访问和修改全局变量。
热门推荐
塔罗牌教你读懂爱情密码
抖音上的塔罗牌爱情咨询:35亿次播放背后的玄学产业
塔罗牌恋人正位:教你如何在恋爱中做出明智选择
益生菌猴头菇丁香片:肠胃健康的秘密武器!
济南电动自行车新规落地:上牌更严、市场洗牌、消费者需谨慎
春节被催婚?这些招数让你从容应对!
传统文化下的催婚焦虑
内啡肽和多巴胺的区别是什么
想自然提升内啡肽?这8种日常方法不如一试
多巴胺和内啡肽的区别和作用
金祥名字的文化密码:财富与好运
隋唐演义中的猛将传奇——罗士信的战功与忠诚
唐朝四大武将:罗士信、李靖、薛仁贵、苏定方
济南出发自驾游新疆全攻略:路线、景点、食宿及必备关注事项指南
选包包时pu皮和pvc哪个好?这两种材质有什么区别?
赵本山、宋丹丹、赵丽蓉:春晚经典小品回顾
2024央视春晚回顾:花开中国梦,创新绽芳华
市场波动下的投资风险管理攻略
从《吃面条》到《我的中国心》,春晚见证时代变迁
DeepSeek vs GPT-4:谁是AI界的王者?
易经智慧与情绪管理
1个月涨粉600万,带货2个亿,老板们成新媒体流量密码?
《千金女贼》:一部关于反叛与自由的传奇故事
腰酸背痛、吃得油腻……针对节后常见小毛病,中医支出妙招!
刘畅新剧《180天重启计划》热播:从古装到现代,演员转型获好评
刘畅回应《舍我其谁》争议:围棋+甜宠的创新尝试
中国风歌词:传统与现代的完美融合
如何写出打动人心的歌词?
肖战《都一样》:一首温暖人心的都市夜曲
维摩诘居士的“不二法门”:如何在红尘中修行?