线程概念学习卡片
线程的定义
- 线程是程序执行流的最小单位
- 可理解为"轻量级进程"
- 是基本的CPU执行单元
- 与传统进程的区别
- 进程是资源分配的基本单位
- 线程是CPU调度的基本单位
引入线程的目的
- 增加系统并发度
- 使一个进程内可并发处理多个任务
- 解决传统进程只能串行执行的问题
- 实际应用示例
- QQ同时进行视频聊天、文字聊天和文件传输
线程机制的变化
- 调度单位变化
- 传统:进程既是资源分配单位也是调度单位
- 引入线程后:进程是资源分配单位,线程成为调度单位
- 并发性提升
- 传统:仅进程间并发
- 引入线程后:进程内线程间也可并发
- 系统开销降低
- 传统进程切换:需要完整切换进程运行环境(类似图书馆换人需搬走全部书籍)
- 线程切换:同进程内线程切换不改变进程环境(类似同学共用书桌)
线程的属性
- 基本特性
- 处理机调度的基本单位
- 多核CPU中不同线程可占用不同CPU核心
- 管理结构
- 每个线程有唯一线程ID和线程控制块(TCB)
- 具有就绪、阻塞、运行三种基本状态
- 资源共享
- 线程几乎不拥有系统资源(属于进程)
- 同进程线程共享进程资源(I/O设备、内存地址空间等)
- 通信效率
- 同进程线程通过共享内存通信,无需系统干预
- 切换特性
- 同进程内线程切换不引起进程切换,开销小
- 跨进程线程切换会引起进程切换,开销较大