线程是什么?
- 线程是现代操作系统引入的一种执行实体
- 线程称“轻型进程”,是进程的组成部分
- 进程是资源占有单位,线程只是CPU调度单位
一个进程运行过程中可创建多个线程
线程共享所属进程的资源,自己只有TCB和很少的栈区
操作系统为什么要引入“线程”?
如果1个进程建立4个线程,结果怎样?
进程占有内存空间(代码段、数据段),4个线程共享进程资源
操作系统引入“线程”以后、
以线程为执行单位,4个线程可并发;
而且线程切换时不用“背着包袱”换来换去,调度开销大大减少。
多线程进程的模型
多线程结构进程的优点
- 快速线程切换
- 通信易于实现
- 减少管理开销
- 并发程度提高
线程分内核级线程KLT和应用级线程ULT
进程与线程的区别
进程是个独立的实体单位:
独立占有资源:进程拥有对资源的控制权或所有权。
独立参与调度/执行:进程是一个可被操作系统调度和分派的单位。
线程仅是分派(调度运行)的单位。
线程不是单独占有资源的单位。线程共享其所属进程的资源。
操作系统中引入进程的目的是为了使多个程序并发执行,以改善资源使用率和提高系统效率
操作系统中再引入线程,则是为了减少程序并发执行时所付出的时空开销,使得并发粒度更细、并发性更好。