怎么区分理解线程进程、同步异步、并行并发

线程、进程

它们描述的是任务的划分。

  • 进程:计算机打开一个应用时用来执行任务的一个任务单元。

                    创建一个进程时,计算机会伴随着给它分配资源。

                   (用来计算的独立的堆栈空间、独立的数据资源)

                    进程的创建会占用资源,进程之间一般不会相互访问对方的资源。

  • 线程:是进程下的小任务单元。

                    创建了一个线程时也会对应分配资源。

                  (用来计算的独立的堆栈空间、进程下的数据资源)

                    线程执行任务时也会占用资源,但是通过调度,线程与线程间资源是共享的。

相互关系:  进程中可以只有一个线程,也可以有多个线程。

                      简单的想,进程线程关系如下,从左到右可以是一对多的关系。

                     应用——进程——线程——指令

                      先有 进程的概念,负责资源分配和任务调度。

                      后来发现执行多任务时,创建一个新进程的开销太大,所以细化引入了线程的概念。

                     由线程分担了任务的调度,进程下的线程共享进程分配的资源。

同步、异步

它们描述的是控制方式。

  • 同步:控制方式,要求一件事情不做完,就不能做下一件。

                    狭义上讲就是纸计算机给进程指令,上一个不执行完,后边的就排队等着吧。

  • 异步:控制方式,要求一件事情开始做,不用等它昨晚,可以继续它后边的事情了。

相互关系:同步和异步是发生在一条线上的先后任务,即任务本来串行的关系,

                   选择同步还是异步根据需要,是一种控制方式的选择。

串行、并行和并发

它们描述的是任务执行的顺序关系。

  • 串行:任务的排列是前后顺序的,每件事情是先后顺序排列的。
  • 并行:任务的时间线是同时的,每件事情都在进行着。
  • 并发:任务的排列是在同一时间发生的,几件任务通过调度穿插执行,最后完成即可,

                    典型应用于流水线作业。微观上是串行的,宏观上认为是并行的。

相互关系:和同步异步的概念会有交叉,但使用场景不一样

                    并行并发是操作系统对任务顺序本身处理调度的描述

                    同步异步是开发环境主动选择的控制手段的描述

扩展

上述理论概念只是一种思维模式,可以应用在各种场景。

其目的就是充分利用资源,不让它们闲置下来,达到高效节约的目的。

例如,CPU的单核同一时间仅能处理一个任务,即串行模式。

因为它处理特别快,多个任务并发进行的时候,感觉像是在同时进行。

后来有了多核技术,才实现真正的并行。

英特尔的超线程技术,也是应用这个概念模式,在单核上增加一套必备的核心新路,

和原来的共用一部分线路,减少线路闲置,实现单核的双线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值