进程和线程都是由操作系统所提供的程序运行基本单元,系统利用该基本单元实现系统对应用的并发性。
一个线程至少有一个进程,一个进程至少有一个线程。
进程: 拥有独立的内存单元,二多个线程共享一块内存;
线程: 线程是指进程内的一个执行单元。
联系: 线程是进程的基本组成单位
区别:
1).调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
2).并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可以并发执行
3).拥有资源:进程是拥有系统资源(单独的地址空间),线程不拥有系统资源,但可以访问隶属于进程的资源
4).系统开销:在创建或撤销进程时,系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤销线程时的开销。一个线程死掉就等于整个进程死掉。多以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源比较大,效率要差一点
5).但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程