线程
什么是是线程? 进程中的一条执行流程
线程的优点
- 一个进程可以同时存在多个线程
- 各个线程之间并发执行
- 各个线程之间共享地址空间和文件等资源
线程的缺点
- 一个线程崩溃将导致其余所有线程崩溃
线程所需的资源
进程与线程的比较
线程的实现
-
用户线程: 在用户空间实现(操作系统看不到)
- 用户线程的缺点
-
内核线程: 在内核空间实现(归操作系统管理)
- 用户级线程和核心极线程的不同:
- 用户级线程一个进程里面的每个线程需要各自的一个栈,核心极线程一个进程里的每个线程各自需要一套栈(用户栈+核心栈)
- 核心极线程之间切换时先切换TCB然后切换核心栈最后切换用户栈
- 用户级线程切换代价小,因为用户级线程的切换只发生在进程中,因为不需要经过内核,而核心极线程切换代价大
- 用户级线程和核心极线程的不同:
-
轻量级线程: 在内核空间实现, 支持用户线程
用户线程与内核线程的对应关系
- 多对一
- 一对一
- 多对多