2 1_6_线程的实现方式和多线程模型.pdf
- 158****9376个人认证 |
- 2021-03-07 发布|
- 326.83 KB|
- 6页
2019/5/16 本节内容 线程的实现方式 多线程模型 王道考研/CSKAOYAN.COM 知识总览 王道考研/CSKAOYAN.COM
王道考研/cskaoyan.com 1 2019/5/16 线程的实现方式 用户级线程 (User-Level Thread, ULT) 历史背景:早期的操作系统 (如:早期Unix)只支持进程, 不支持线程。当时的 “线程”是由线程库实现的 用户级 用户级 用户级 线程 线程 线程 视频 应用 程序 文字 线程库 聊天 用户态 内核态 传送 进程1 文件 操作 进程 系统 进程2 进程3 王道考研/CSKAOYAN.COM 线程的实现方式 用户级线程 (User-Level Thread, ULT) 历史背景:早期的操作系统 (如:早期Unix)只支持进程, 视频 文字 文件 不支持线程。当时的 “线程”是由线程库实现的 用户级 用户级 用户级 线程 线程 线程 应用 程序 线程库 用户态 内核态 操作 QQ进程 进程 系统 从代码的角度看,线程其实就是一段代码逻辑。 上述三段代码逻辑上可以看作三个 “线程”。 while 循环就是一个最弱智的 “线程库”,线程 库完成了对线程的管理工作 (如调度)。 王道考研/CSKAOYAN.COM
王道考研/cskaoyan.com 2 2019/5/16 线程的实现方式 用户级线程 (User-Level Thread, ULT) 历史背景:早期的操作系统 (如:早期Unix)只支持进程, 不支持线程。当时的 “线程”是由线程库实现的 用户级 用户级 用户级 线程 线程 线程 很多编程语言提供了强大的线程库,可以实现 应用 线程的创建、销毁、调度等功能。 程序 线程库 用户态 内核态 1. 线程的管理工作由谁来完成? 2. 线程切换是否需要CPU变态? 操作 进程 系统 3. 操作系统是否能意