一、线程的引入
为了使多个程序并发执行,提高资源利用率和系统效率,OS引入了进程
为了减少程序并发执行时所付出的时空开销,使得并发粒度更细、并发性更好,OS引入了线程
二、线程(Threads)的概念
1. 线程的定义
是进程中的一个实体,是能被系统独立调度和分派的基本单位。
2. 线程的组成
每个线程都有一个线程控制块TCB。主要组成部分:
① 线程ID
② 寄存器集合
③ 程序计数器
④ 栈
3. 多线程的优点
• 响应度高:只需要阻塞部分线程,提高了对用户的响应
• 资源共享:线程默认共享所属进程的内存和资源
• 经济:创建和切换线程的代价更小
• 多处理器体系结构的利用:在多CPU上提高了并行性
三、线程与进程的比较
线程具有很多进程的特征,所以又被称为 “轻型进程” ,传统进程被称为“重型进程”。
1. 调度方面
线程成为调度和分派的基本单位(即能够独立运行的基本单位),进程则是拥有资源的独立单位。 同一进程内,线程的切换不会引起进程的切换。
2. 并发性方面
不仅进程之间可以并发执行,线程之间也可以(不管是否是同一进程的线程)。
3. 拥有资源方面
进程是操作系统中拥有资源的最基本单位,线程共享进程的资源,自己并不拥有。
4. 独立性方面
同一进程中的不同线程 之间的独立性要比 不同进程之间 的独立性 低得多。
5. 系统开销方面
线程的系统开销远比进程小,且更容易实现通信和同步。
6. 支持多处理机系统方面
不管有几个处理机,一个进程只能分配到一个CPU上执行,但同一进程内的多个线程可分配到多个CPU上并行执行。