1.进程的定义
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。进程是程序的一次执行活动,是程序运行的实例,属于动态概念。
(注意:在Mac、Windows NT等采用微内核结构的操作系统中,进程只是资源分配的单位,而不再是调度运行的单位。在微内核系统中,真正调度运行的基本单位是线程。因此,实现并发功能的单位是线程。 )
进程是系统进行资源分配的基本单位。
2.线程的定义
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。
线程是CPU调度和程序执行的最小单位。
3.进程和线程的关系
4.进程与线程的区别
(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。
(3)处理机分给线程,即真正在处理机上运行的是线程。
(4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
参考资料:
(1)调度:线程作为CUP调度和分配的基本单位,进程作为拥有资源的基本单位。
(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行。
(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源。
(4) 系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。在进程切换时,耗费资源较大,效率要差一些。
(5)健壮性:进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个进程死掉就等于所有的线程死掉,所以多进程的程序要比多线程的程序健壮。
1.进程和线程的区别 http://www.cnblogs.com/hazir/archive/2011/05/09/2447287.html
2.应届生经典面试题:说说进程与线程的区别与联系 http://www.cnblogs.com/way_testlife/archive/2011/04/16/2018312.html
3.面试总结-进程、线程与多线程 http://www.cnblogs.com/wuchanming/p/3992395.html?utm_source=tuicool&utm_medium=referral
4.linux 下 进程和线程的区别(baidu 面试) http://blog.csdn.net/forrest2009/article/details/6413756
4.线程、进程面试题 http://blog.csdn.net/baidu_19340981/article/details/39314413
5.面试复习笔记:线程与进程复习 http://blog.csdn.net/pleasecallmewhy/article/details/28649167