0
点赞
收藏
分享

微信扫一扫

程序、进程和线程及并行和并发的区别

静悠 2022-01-25 阅读 105

程序、进程和线程及并行和并发的区别

程序、进程和线程

1、程序

程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。计算机程序(Computer Program)是指一组指示计算机或其他具有消息处理能力装置每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。所以,程序可以看作是由一种语言编写而成的,用于指示懂得该语言且拥有对于能力的体系结构,使其能够执行操作者命令的一种指令。 在计算机编程当中,程序即可理解为由编程语言(C、Java等)编写而成的一串代码。

2、进程

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
狭义上理解,进程即是正在运行的程序实例。
而从广义上理解,进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

3、线程

线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。
同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。一个进程可以有很多线程,每条线程并行执行不同的任务。

总的来说,程序、进程和线程的关系可以看作为:线程包含于进程,进程包含于程序。

并行和并发的区别

并行的意思是“同时实行或实施”。在操作系统中并行则指,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。
并发是指:在同一时间段,多个任务都在执行。宏观上是同时执行,微观上是顺序地交替执行。
并发是指一个处理器同时处理多个任务。并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。
因此并行和并发的区别主要是:
并发是逻辑上的同时发生,而并行是物理上的同时发生。举个例子:一个人有三个任务需要在一定时间内完成,如果他选择将这三个任务一一完成(即每次只做一个任务,可以中途切换,但是手头只干一件事)那么这就是并发,而如果他选择将这三个任务一起完成(即同时进行三个任务,手头上有三件事)那么这就是并行

总的来说,并发是指在同一时间段,多个任务都在执行。宏观上是同时执行,微观上是顺序地交替执行。并发不一定等于并行。而并行则指在单位时间内多个任务同时执行。

举报

相关推荐

0 条评论