`

线程和进程的区别

阅读更多

进程的作用和定义:进程是为了提高CPU的执行效率,减少因为程序等待带来的CPU空转以及其他计算机软硬件资源的浪费而提出来的。进程是为了完成用户任务所需要的程序的一次执行过程和为其分配资源的一个基本单位,是一个具有独立功能的程序段对某个数据集的一次执行活动。

 

线程的引入:例如,有一个Web服务器要进程的方式并发地处理来自不同用户的网页访问请求的话,可以创建父进程和多个子进程的方式来进行处理,但是创建一个进程要花费较大的系统开销和占用较多的资源。除外,这些不同的用户子进程在执行的时候涉及到进程上下文切换,上下文切换是一个复杂的过程。所以,为了减少进程切换和创建的开销,提高执行效率和节省资源,人们在操作系统中引入了"线程(thread)"的概念。


线程是进程的一部分(有时候被称为是轻权进程或者轻量级进程),进程是程序的一部分。


线程是指进程内的一个执行单元,也是进程内的可调度实体.

 

线程和进程的区别:

(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程拥有一个自己独立完整的虚拟空间地址,并不依赖线程而独立存在;

 

(2)资源拥有:进程是资源分配和拥有的单位,是系统所有资源分配时候的一个基本单位,同一个进程内的线程共享进程的资源,

 

注:系统在运行的时候会为每个进程分配不同的内存区域,但是不会为线程分配内存(线程所使用的资源是它所属的进程的资源),线程组只能共享资源。那就是说,出了CPU之外(线程在运行的时候要占用CPU资源),计算机内部的软硬件资源的分配与线程无关,线程只能共享它所属进程的资源。

 

(3)处理调度:线程是处理器调度的基本单位,但进程不是.


(4)包含关系:一个没有线程的进程是可以被看作单线程的,如果一个进程内拥有多个进程,进程的执行过程不是一条线(线程)的,而是多条线(线程)共同完成的。二者均可并发执行.


(5)控制表:与进程的控制表PCB相似,线程也有自己的控制表TCB,但是TCB中所保存的线程状态比PCB表中少多了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics