一个程序至少包含一个进程(其实也可以包含多个进程,具体看程序实现);
一个进程至少包含一个线程(当然了,多线程的应用就司空见惯了)。
主要的区别如下:
- 进程拥有独立的内存单元(地址空间),是系统进行资源分配和内存调度的一个独立单位;线程间共享内存空间,是进程的一个实体,是CPU 调度的基本单位
- 线程可与同属一个进程的其他线程共享进程内的资源
- 进程拥有独立的地址空间,一个进程崩溃并不会影响到其他进程;而线程只是进程的不同执行路径,没有独立的地址空间,一个线程崩溃将导致整个进程死掉
- 多进程的程序要比多线程健壮,单在进程切换过程中,耗费的资源也比较大。而且多进程在需要共享变量时候也不方便,需要用到进程间通信的一些方法。