程序、进程与线程、并发与并行

一.程序

计算机程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。

——百度百科

程序是连接操作人员和计算机之间的桥梁,操作人运用编程语言,把自己的需求通过数据结构和算法转化为程序,告诉计算机应该做什么,计算机通过编译把编程语言转化为数字语言,并放入运行。简言之,程序就是一段指令序列

二.进程与线程

进程是操作系统分配资源的的单位,是程序的实体,是一段程序运行过程的实体化。当程序未被执行时,它是一个没有生命的实体,而程序被操作系统执行时,它才能成为一个活的实体,这个活的实体便称之为进程。简言之,进程就是动态程序。

线程是操作系统能够进行运算调度的最小单位,包含在进程之中。线程是进程的一个执行路径,可以理解为一条条的线程构成了一个进程,同一个进程中的线程共享资源,计算机通过调度线程而非进程,可以极大地节省成本。

三.并发与并行

我们知道,一个CPU在同一时刻只能执行一条指令,如果CPU在一段时间内依次执行完一个进程的指令,那么宏观上展现为一个CPU只能完成一个进程,但如果在一段时间内,多个进程的指令被快速地轮换执行,最后宏观上展现出来的是一个CPU同时完成了多个进程,通过快速轮换的方式实现一个CPU在一段时间内完成多个进程的过程便称为并发。

若是电脑搭载了多个处理器,就能实现在一个时刻同时执行多条指令,这个过程便称为并行

更直观地说,并发是一个处理器同时处理多个任务,并行是多个处理器同时处理多个任务。并发中的同时处理是通过宏观体现的,微观上任然是单时刻内只有一条指令执行;并行的同时处理是可以微观体现的,即单时刻内有多条指令执行。

四.例子

我们举一个例子来帮助理解上述五个概念,拼积木。

一个大积木由五个部件构成,五个部件又由若干个小积木构成。玩家所看的说明书就是程序,上面写了玩家应该执行的步骤和具体操作方法,玩家通过阅读说明书把说明书上的操作落实到实践中,玩家实际按照说明书拼积木的过程就是一个进程,是说明书的动态化过程。把大积木的五个部件分给五个玩家去完成,五个部件的五个完成进度构成了大积木的完成进度,这五个小进度就是五个线程。如果这个大积木只由一个玩家完成,对于限定时间内,该玩家快速依次拼完了五个部件,构成大积木,那么结束时可以说该玩家同时拼完了五个部件,但实际上该玩家是一个一个部件地拼成大积木,单个玩家完成五个部件的过程称为并发。如果这个大积木由五个玩家完成,那么结束时可以说五个玩家同时拼完了五个部件,即五个部件的拼装进度是同时进行的,五个玩家完成五个部件的过程称为并行。

猜你喜欢

转载自blog.csdn.net/m0_73249076/article/details/129309772