参考: http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 比较生动形象,通俗易懂。
进程:process
1.是系统进行资源分配的基本单位。
2.有独立的内存地址空间。
3.创建进程,开销大,包括建虚拟地址空间等需要大量资源。
4.一个进程无法直接访问另一个进程。同一个进程内的多个线程共享进程资源。
线程:thread
1.是CPU调度的基本单位。
2.没有单独的地址空间。有独立的栈,局部变量,寄存器,程序计数器等
3.创建线程,开销小,基本只有一个内核对象和一个堆栈。
4.进程切换开销大,线程切换开销小;进程间通信开销大,线程间通信开销小。
线程属于进程,不能独立执行。每个进程至少有一个线程,成为主线程。