程序、进程、线程、协程结构图
创作时间:
作者:
@小白创作中心
程序、进程、线程、协程结构图
引用
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):一些线程库提供了消息队列的实现,允许线程之间通过消息进行通信。
协程之间通信
协程之间通信相对较为简单,通常通过共享全局变量来实现。由于协程在用户空间中运行,不涉及系统调度,因此不需要像进程或线程那样复杂的同步机制。协程通常在同一个线程内运行,它们共享该线程的内存空间,因此可以直接访问和修改全局变量。
热门推荐
飞行员身上为什么不能有大的伤疤
HR必读:加班调休与加班费核算的6个法律要点解析
脑瘤的发病原因
苏门四学士及其文学成就探析
长寿梅盆景养护全攻略:从浇水到修剪,打造古朴苍劲的盆景佳品
如何评估船舶股的市场表现?这个行业的发展趋势如何判断?
白细胞介素 17D(IL-17D):结构、功能与临床意义
关于狭窄性腱鞘炎诊疗的一些思考
鬼谷八荒三种筑基方式详解
毛囊萎缩怎么治疗
新年开学季,谨防以下几类电信网络诈骗!
光化学合成维生素D
摩托车需要缴纳哪些税费?一文详解消费税、购置税和车船税
可转债正股退市了,转债怎么办?
夏日“汗斑”让人烦,抗真菌治疗是关键!
区分乙酸和乙醇的十种办法
居民投诉多次无果!烧烤店油烟排进小区,住户难忍 终于解决!
社保代缴公司参保不及时,女职工无法享受生育保险,损失谁承担?
刚刚,突破139亿!哪吒出海!好莱坞颤抖?
上海新政效果观察|嘉定楼市:有项目7个月卖近千套房,有项目4个月只卖出2套房
从计划到行动:逐步指导创建有效的用户调研(定性)
鼻前庭炎抹什么药膏效果好得快
PS5 Pro二手市场遇冷:高价无光驱,黄牛亏本抛售
火命和木命在一起好吗?八字火旺的婚姻好不好?
女子种植800余株罂粟只为“看花”,结果……
开学第一课,英语教师可参考的6种课堂设计!
车祸保险理赔到账需要多久?
如何吃才能消水肿?喝红豆水有效吗?5种消水肿食物大公开
如何设置电脑风扇静音(简单调整让电脑风扇噪音降至最低)
竞争分析方法是什么