进程是资源分配的基本单位 线程是CPU调度的基本单位

地址空间

开销

进程切换,操作系统会进行上下文切换(Context Switch),其中开销比较大。

但是线程是在用户态的,本来就是OS提供的轻量级线程,没有频繁上下文切换的开销。

更细节来讲,进程切换需要保存所有寄存器到内存,而线程只需要切换Caller Saved寄存器

并发性

开销越小并发越高,进程的并发性较低,线程的并发性较高。

内存

线程之间共享内存,但是OS会对每个进程分配独立的内存空间