进程、线程和程序的区别

来源:互联网 发布:数控螺纹g92螺纹编程 编辑:程序博客网 时间:2024/06/06 00:39

线程,进程 和程序,这三个词语当中都有“程”字,特别让人容易混淆,要是想不弄错,最核心的是我们要知道他们是如何定义的,是如何使用的,知道它们的原理,这样就不会搞混了。

【线程】

什么是线程呢,官方的定义是这样的:

线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元;

线程是进程中的一个实体;

每一个程序都至少有一个线程,若程序只有一个线程,那就是程序本身。

【线程之单线程与多线程】

其实这个很好理解,我是这样理解的一个进程中只有一个线程运行,而多线程是一个进程中有多个线程同时进行,这里强调的是“同时”这个词。

举个栗子:你早上正要吃饭的时候,手机响了,你如果先接了电话,等接完了再吃饭,做完一件事情再做另一件事情,就是单线程。
如果你一手接电话一手吃饭,这两件事情是同时进行的, 就是多线程。

但是最后的结果是一样的,你不仅接了电话而且还吃了饭。

【进程】

狭义定义:进程就是程序的执行过程。
进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

【进程的三种状态】


进程执行时的间断性,决定了进程可能具有多种状态。事实上,运行中的进程可能具有以下三种基本状态。
1)就绪状态(Ready):
进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。
2)运行状态(Running):
进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。
3)阻塞状态(Blocked):
由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理机分配给该进程,也无法运行。

其实官方的这三种状态我是这样理解的:

就绪状态:进程自身的条件都满足了,就差处理器这个东风了

运行状态:进程的数目<处理器的数目,有空闲的处理器

阻塞状态:进程本身的条件还不满足,还没有到达可以使用处理器的资格。

【线程与进程的区别】

线程:一个线程是一个程序内部的一个顺序控制流。即:一个或多个线程组成了一个进程。
进程:可以简单的理解为一个正在运行的程序。

【总结】

关于这些名词,其实没有什么不好理解的,最重要的是自己认真的研读一下,看这些词的解释的时候,要理解着去看,不可以只是看一眼读一下。



0 0
原创粉丝点击