目录
知识总览
1、什么是线程,为什么要引入线程?
有的进程可能需要“同时”做很多事,而传统的进程只能串行地执行一系列程序。为此,引入了“线程”,来增加并发度。
引入线程后,线程成为了程序执行流的最小单位,可理解为“轻量级进程”。
线程是一个基本的CPU执行单位,也是程序执行流的最小单位。
引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ内聊天、视频、传文件)
引入线程后,进程只作为除CPU之外的系统资源的分配单元(如打印机、内存地址空间等都是分配给进程的)。
2、引入线程机制后,有什么变化?
引入线程机制后,主要有以下三点变化:
(1)资源分配、调度
(2)并发性
(3)系统开销
具体如下:
3、线程的属性
4、线程的实现方式
(1)用户级线程(ULT)
(2)内核级线程(KLT)
在同时支持两种线程的系统中,可二者组合使用,将n个用户级线程映射到m个内核级线程上(n>=m)。如下:
重点:操作系统只“看得见”内核级线程,因此只有内核级线程才是处理机分配的单位。
5、多线程模型
在同时支持用户级线程和内核级线程的系统中,由几个用户级线程映射到几个内核级线程的问题引出了“多线程模型”问题。
(1)多对一模型
(2)一对一模型
(3)多对多模型
回顾
参考:
《王道计算机考研 操作系统》
https://www.bilibili.com/video/av70156862