进程和线程的区别
-
进程
进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。 -
引入线程的原因
1 进程第一个属性说明,进程是独立运行调度的基本单位,因此为使程序能并发执行,系统必须进行以下的一系列操作:1) 创建进程2) 撤消进程 3) 进程切换
进程在创建、撤消和切换中,系统必须为之付出较大的时空开销,因此,在系统中所设置的进程,其数目不宜过多,进程切换的频率也不宜过高,这也就限制了并发程度的进一步提高。
2 为了使多个程序更好地并发执行同时又尽量减少系统的开销.
将进程的两个属性分开:对于作为调度和分派的基本单位,不同时作为拥有资源的单位,以做到“轻装上阵”;而对于拥有资源的基本单位,又不对之进行频繁的切换,在这种思想的指导下,形成了线程的概念。
在操作系统中引入线程,就是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性 -
线程
线程是进程的一个实体,是cpu调度和分派的基本单位,它是比进程更小的能独立运行的基本单位 -
线程与进程的比较
调度:更高效
并发性:更好。
拥有资源:进程是拥有资源的一个基本单位,一般而言,线程自己不拥有系统资源(也有一点必不可少的资源),但它可以访问其隶属进程的资源。
系统开销:线程远低于进程 -
那线程拥有哪些私有资源,又拥有哪些共享资源呢???
1 线程独自拥有的资源(私有资源):
线程ID;
寄存器组的值;
线程的堆栈;
错误返回码;
线程的信号屏蔽;
线程的优先级.
2 线程间共享的资源:
同一进程的线程共享进程的代码段,进程公有数据,进程打开文件描述符,信号处理器,进程的当前目录和进程用户ID,进程组ID