819.线程和进程有什么区别?

  1. 进程是系统进⾏资源分配的基本单位,有独⽴的内存地址空间
  2. 线程是CPU独⽴运⾏和独⽴调度的基本单位,没有单独地址空间,有独⽴的栈,局部变量,寄存器, 程序计数器等。
  3. 创建进程的开销⼤,包括创建虚拟地址空间等需要⼤量系统资源
  4. 创建线程开销⼩,基本上只有⼀个内核对象和⼀个堆栈。
  5. ⼀个进程⽆法直接访问另⼀个进程的资源;同⼀进程内的多个线程共享进程的资源。
  6. 进程切换开销⼤,线程切换开销⼩;进程间通信开销⼤,线程间通信开销⼩。
  7. 线程属于进程,不能独⽴执⾏。每个进程⾄少要有⼀个线程,成为主线程