线程状态与转换学习卡片
线程核心三状态
- 运行态:线程正在处理器上执行
- 就绪态:线程已准备好运行,等待被调度程序选中
- 阻塞态:线程因等待某事件(如I/O操作)而暂停执行
状态转换关系
- 运行→就绪(转换②):时间片用完,线程被剥夺处理器
- 就绪→运行(转换③):调度程序选中该线程执行
- 运行→阻塞(转换①):线程发出等待请求(如I/O)
- 阻塞→就绪(转换④):等待的事件发生
线程控制块(TCB)
- 标识信息:TID(线程唯一标识符)
- 执行上下文:
- 程序计数器(PC)
- 通用寄存器值
- 堆栈指针(SP)
- 管理信息:
- 运行状态(运行/就绪/阻塞等)
- 优先级
- 阻塞原因(如适用)
线程表组织方式
- 按进程划分:每个进程维护自己的线程表
- 按状态分类:将不同状态的线程组织到不同表中
- 全局统一管理:系统维护一个统一的线程表
考试重点/易混淆点
- 状态转换逻辑与进程完全一致
- 堆栈存储内容(函数调用链/局部变量)与仅保存指针的优化设计对比
- 线程表组织策略差异(如每进程独立表vs全局统一表)
- 现场保存粒度(完整堆栈vs指针引用)的取舍