概念

进程:正在运行的一段程序

线程:进程一个子任务

区别

1.进程是资源分配的最小单位,线程是CPU调度的最小单位。

2.一个进程可以有多个线程(至少有一个线程),而一个线程只属于一个进程,线程是依赖于进程存在的。

3.进程拥有自己独立的内存单元,而多个线程共享该进程的内存。

4.系统开销:进程在创建和销毁的时候,系统都会为他分配和回收资源(如I/O设备,内存空间等),操作系统为此付出的代价高于创建和销毁线程开销。类似的,进程切换要比线程切换开销更大,因为进程切换涉及到CPU环境的保存和新进程运行时的CPU环境的设置。而线程只需要保存和设置部分进程器的内容,不涉及存储器管理方面的操作。

5.通信:进程间通过管道,系统IPC(消息队列,信号量,信号,共享内存)和套接字Socket进行通信,而线程通过全局变量来进行通信,需要进程的同步和互斥手段辅助

6.进程间不会相互影响,一个进程中的某个线程挂掉会导致整个进程挂掉。