2.7 线程
目录
参考资料:
线程的引入
由于进程的创建,销毁和调度都需要消耗大量的资源,所以引入了线程的概念。
进程的基本属性:
- 拥有资源的独立单位
- 可独立调度和分派的基本单位
线程的特点:
- 并发性:线程是一个基本的 CPU 执行单元(进程被踢下神坛),一个进程可以有多个线程,每个线程都可以并发执行
- 拥有资源:线程除了拥有少量自己的必要资源外,还允许多个线程共享同一个进程的资源
- 独立性:线程间的独立性比进程间的独立性要小,线程间的独立性体现在线程的调度和分派上,线程的调度和分派是由操作系统内核完成的,而进程的调度和分派是由操作系统内核完成的
- 系统开销小:线程的创建,销毁和切换的开销都比进程要小
- 支持多处理器系统:可以把一个进程中的多个线程分配到多个处理器上,从而提高系统的并发性。
进程是资源分配的基本单位
线程是 CPU 调度的基本单位
线程的三个状态
和进程类似,线程也有三个状态:执行状态,就绪状态,阻塞状态
TCB
线程控制块 TCB(Thread Control Block)是操作系统内核用于管理线程的数据结构。
包含:
- 线程的标识符
- 一组寄存器:程序计数器 PC,状态寄存器,通用寄存器
- 线程运行状态
- 优先级
- 线程堆栈
- 信号屏蔽:对某些信号进行屏蔽,不接收这些信号
- 堆栈指针: