线程实现方式

#线程的实现方式

  • #用户级线程
  • 用户级线程由应用程序通过线程库实现,所有的线程管理工作都由应用程序负责
  • 用户级线程中,线程切换可以在用户态下即可完成,无需操作系统干预
  • 在用户看来,是有多个线程,但是在操作系统内核看来,并意识不到线程的存在。用户级线程就是从用户视角能看到的线程
  • Pasted image 20260623212244.png
  • #优缺点

  • 优点:用户级线程的切换可以在用户空间即可完成,不需要切换到核心态,线程管理的系统开销小,效率高
  • 缺点:当一个用户级线程被阻塞后,整个进程都会被阻塞,并发度不高。多个线程不可在多核处理机上并行运行。
  • #内核级线程
  • 内核级线程的管理工作由操作系统内核完成
  • 现成给调度,切换等工作都由内核负责,因此内核级线程的切换必然需要在核心态下才能完成
  • 操作系统会为每个内核级线程建立相应的TC B,通过TCB对线程进行管理,“内核级线程”就是“从操作系统内核视角能看到的线程”
  • Pasted image 20260623212618.png
  • #优缺点
  • 优点:当一个线程被阻塞后,别的线程还能继续执行,并发能力强,多线程可在多核处理机上并行执行
  • 缺点:一个用户进程会占用多个内核级线程,线程切换由操作系统内核完成,需要切换到核心态,因此线程管理的成本高,开销大。