进程vs线程
2018-08-30 本文已影响0人
RedHatMe
from知乎:
-
进程就是包换上下文切换的程序执行时间总和 = CPU加载上下文+CPU执行+CPU保存上下文。
-
线程就是 进程的 CPU执行 过程中一个更小的CPU时间段 ,但是这些时间段的CPU执行都共享了进程之前加载的上下文环境 ,也就是资源。
-
简单来说 就是 进程和线程是CPU不同颗粒度时间 运行的一种表现。
from教科书:
- 进程是cpu资源分配的最小单位,线程是cpu调度的最小单位。即 进程统管 资源。线程只关心CPU调度[利用多核等]。
- 线程相比于进程主要是减少了上下文切换的耗时。调度起来更轻量级,同时线程提升系统的并发性能。
- 一个进程可以没有线程,作为空进程存在,但是由于里面没有线程,cpu在这里无法得到执行,cpu的执行依附于线程。
- 线程也有可以有自己的内存。如 栈 寄存器等等。所以 线程切换时也有自己的上下文需要保存 恢复。
- 线程之间共享的资源有 堆,全局变量,文件等。