一、
进程是指在系统中正在运行的一个应用程序。
线程则是存在于进程中的,共享进程的内存空间。
理解:
线程存在于进程之间,线程的存在是为了榨干进程的内存空间,然后让cpu得到充分的利用。进程和线程的关系就像是人和手的关系。一个进程可以有多个线程,也可以没有除了进程本身之外的线程。但是有线程,就一定有进程。
二、地址空间
同一个进程的线程共享本进程的地址空间,但是进程之间是互相独立占有空间的。
三 、资源
在一个进程里的线程是共享本进程的资源的(内存,cpu,I/O等)。
当一个进程崩溃之后,是不会对其他进程产生影响的。但是当一个线程崩溃(特指:exit()退出)之后,整个进程都会受到影响。
进程在切换使用时,所消耗的资源大,效率要高,所以当遇到频繁切换的时候,优先选用进程。但是当要求同时进行且共享的时候,优先选用线程。
四、在执行过程时
每一个独立的进程都有一个程序运行的入口,顺序执行序列和程序入口,但是线程不能独立执行。