国内看网站 优帮云,科技创新与应用,如何将wordpress搬家,三明市住房与城乡建设部网站文章目录2.1.5 线程概念与多线程模型2.1.5.1 线程的来源2.1.5.2 线程机制带来的变化2.1.5.3 线程的属性2.1.5.4 线程的实现方式2.1.5.5 多线程模型2.1.5.6 小结2.1.5 线程概念与多线程模型
2.1.5.1 线程的来源
在很久以前还没有引入进程之前#xff0c;系统中的各个程序只能…
文章目录2.1.5 线程概念与多线程模型2.1.5.1 线程的来源2.1.5.2 线程机制带来的变化2.1.5.3 线程的属性2.1.5.4 线程的实现方式2.1.5.5 多线程模型2.1.5.6 小结2.1.5 线程概念与多线程模型
2.1.5.1 线程的来源
在很久以前还没有引入进程之前系统中的各个程序只能串行执行。比如你想要边听歌边开QQ这是不可能做到的只能先做一件事再做一件事。
后来引入进程后系统中的各个程序可以并发执行。也就是说可以同时听歌和开QQ。但是即使引入了进程也不能在QQ中同时视频聊天和传输文件。这是因为操作系统每一次执行都是按照进程为单位来执行的。
从上面的例子来看进程是程序的一次执行。但是这些功能显然不可能是由一个程序顺序处理就能实现的。
有的进程可能需要“同时做很多事”而传统的进程只能串行地执行一系列程序。为此引入了线程来提高并发度。
在传统中进程是程序执行流的最小单位也就是说CPU每次执行任务最少执行一个进程。而后在现在CPU每次执行任务最少执行一个线程线程是进程的子集。也就是说引入线程后线程成为了程序执行流的最小单位。
综上所述我们可以把线程理解为“轻量级进程”。线程是一个基本的CPU执行单元也是程序执行流的最小单位。引入线程之后不仅是进程之间可以并发进程内的各线程之间也可以并发从而进一步提升了系统的并发度使得一个进程内也可以并发处理各种任务如QQ视频、文字聊天、传文件。引入线程后进程只作为除CPU之外的系统资源的分配单元如打印机、内存地址空间等都是分配给进程的。 2.1.5.2 线程机制带来的变化
资源分配、调度并发性系统开销传统进程机制中进程是资源分配、调度的基本单位传统进程机制中只能进程间并发传统的进程间并发需要切换进程的运行环境系统开销很大。引入线程后进程是资源分配的基本单位线程是调度的基本单位引入线程后各线程间也能并发提高了并发度线程间并发如果是同一进程内的线程切换则不需要切换进程环境系统开销小也就是说引入线程后并发所带来的系统开销减小。切换进程环境的类比 去图书馆看书。 切换进程运行环境 有一个不认识的人要用桌子你需要把你的书运行环境收走他把自己的书运行环境放到桌上。 同一进程内的线程切换 你的舍友要用到这张书桌可以不把桌子上的书收走因为大家彼此认识属于同一个进程。 2.1.5.3 线程的属性 2.1.5.4 线程的实现方式 用户级线程由应用程序通过线程库实现。所有的线程管理工作都由应用程序负责包括线程切换。用户级线程中线程切换可以在用户态下即可完成无需操作系统干预。在用户看来是有多个线程但是对于操作系统内核来说并意识不到线程的存在。即用户级线程对用户不透明对操作系统透明。 内核级线程Kernel-Level Thread,KTL又称为“内核支持的线程” 内核级线程的管理工作由操作系统内核完成。线程调度、切换等工作都由内核负责因此内核级线程的切换必然需要在核心态下才能完成。 在同时支持用户级线程和内核级线程的系统中可采用两者组合的方式将n个用户级线程映射到m个内核级线程上nm 需要重点关注的是操作系统只“看得见”内核级线程因此只有内核级线程才是处理机分配的单位。
拿上面的映射图来说该进程由两个内核级线程和三个用户级线程构成在用户看来这个进程中有三个线程。但即使该进程在一个4核处理机的计算机上运行也最多只能被分配到两个核最多只能有两个用户线程并行执行。 2.1.5.5 多线程模型
在同时支持用户级线程和内核级线程的系统中由几个用户级线程映射到几个内核级线程的问题引出了“多线程模型”问题。 多对一模型 多个用户及线程映射到一个内核级线程。每个用户进程只对应一个内核级线程。 优点用户级线程的切换在用户空间即可完成不需要切换到核心态线程管理的系统开销小效率高。 缺点当一个用户级线程被阻塞后整个进程都会被阻塞并发度不高。多个线程不可在多核处理机上并行运行。 一对一模型 一个用户及线程映射到一个内核级线程。每个用户进程有与用户级线程同数量的内核级线程。 优点当一个线程被阻塞后别的线程还可以继续执行并发能力强多线程可在多核处理机上并行执行。 缺点一个用户进程会占用多个内核级线程线程切换由操作系统内核完成需要切换到核心态因此线程管理的成本高开销大。 多对多模型 n用户线程映射到m个内核级线程nm。每个用户进程对于m个内核级线程。 其克服了多对一模型和一对多模型的缺点。 2.1.5.6 小结
这一小节的知识点易作为选择题考查。