线程

什么是是线程? 进程中的一条执行流程

线程的优点

  1. 一个进程可以同时存在多个线程
  2. 各个线程之间并发执行
  3. 各个线程之间共享地址空间和文件等资源

线程的缺点

  1. 一个线程崩溃将导致其余所有线程崩溃

线程所需的资源

操作系统--线程_内核线程

进程与线程的比较

操作系统--线程_用户线程_02

线程的实现

  1. 用户线程: 在用户空间实现(操作系统看不到)
  • 用户线程的缺点
  1. 内核线程: 在内核空间实现(归操作系统管理)
  1. 用户级线程和核心极线程的不同:
  1. 用户级线程一个进程里面的每个线程需要各自的一个栈,核心极线程一个进程里的每个线程各自需要一套栈(用户栈+核心栈)
  2. 核心极线程之间切换时先切换TCB然后切换核心栈最后切换用户栈
  3. 用户级线程切换代价小,因为用户级线程的切换只发生在进程中,因为不需要经过内核,而核心极线程切换代价大
  1. 轻量级线程: 在内核空间实现, 支持用户线程
  2. 操作系统--线程_用户线程_03

用户线程与内核线程的对应关系

  • 多对一
  • 一对一
  • 多对多