跳转至

Thread

线程和进程的区别

线程是进程的一个 Execution Unit,一个进程可以包含多个线程。每个线程有自己的 Stack 和 PC, Regs,但是共享 Data Section、Heap 和 Code Section。

简单来说,线程是执行单元,进程是资源管理单元

img

线程具有响应性、资源共享、经济、可伸缩等有点,但是,一个线程的崩溃会导致整个进程的崩溃

多线程模型

  • many - to - one:多个用户线程映射到一个内核线程,这样的话很可能无法进行并发计算。
  • one - to - one:每个用户线程都为它创造一个内核线程,这样的话可以进行并发计算,但是内核线程的创建和销毁开销很大。
  • many - to - many:多个用户线程映射到多个内核线程,这样的话可以进行并发计算,而且内核线程的创建和销毁开销较小,但是实现难度大。

线程库

TBD