并发与并行的混淆(错误55)

内容

该章节通过咖啡店卖咖啡的例子解释了关于并发和并行的概念。
咖啡店有个店员,同时负责:收银、磨咖啡豆、咖啡机冲咖啡。如果一个店员顺序做这些事情,会是什么效果呢?客户会等很长的时间,甚至于不耐烦而离开。

如果要提升用户体验怎么操作?增加人手、买咖啡机,然后就变成两条线了,这样就可以同时服务于两倍的客户了。俩个店员互不打扰对方的工作,各自完成的「收银」=> 「磨咖啡豆」=> 「煮咖啡」的流程,依次顺序完成。这就是「并行」,两条磨咖啡流程互不打扰,各自完成各自的任务。

上述方式,确实提升了用户体验,但是从老板的角度看,投入也增加了一倍,站在老板的角度,总是想着压榨一下员工,提升收益,于是“聪明”的老板发现,在收银和磨咖啡时,咖啡机是空闲的;在店员操作完开始煮咖啡后,店员在等待咖啡完成。于是老板改进了服务流程,可以进一步压榨员工,赚取更多的利益。
在煮咖啡的过程中,店员继续去收银、磨咖啡豆,咖啡机和店员在同一时刻都在工作。从店员的角度看,还是这个店员,同一时刻也只能做一件事情,但是在等咖啡完成的时间,又去做了收银、磨咖啡豆工作,是不是看着这个店员「同时在处理多个事情」,但是「同一刻又只能做一件事」,这就是「并发」。

总结:

并行
并行是多个任务或操作在同一时刻实实在在地同时执行的工作方式。其具有以下显著特点:

  • 资源独立性:并行处理中的每个任务都拥有独立的资源分配,如在我们所举的咖啡店例子中,新增的店员和新增的咖啡机都有各自独立的工作空间和设备资源,彼此互不干扰、相互独立地执行任务。
  • 同步性:多个并行的任务能够在相同的时间点上同步推进,共同完成工作。每个任务都在同一时刻按照各自的流程和步骤进行操作,彼此之间不存在时间上的先后依赖关系。
  • 高效性:由于多个任务能够同时开展,所以在单位时间内完成的工作量大大增加,工作效率显著提升。就像咖啡店增加店员和咖啡机后,能够同时为更多的客户提供服务,大大缩短了客户的平均等待时间,提高了店铺整体的运营效率。
  • 硬件依赖:并行处理通常需要足够的硬件资源支持,如多个处理器核心、多台设备等。没有相应的硬件资源,并行处理就无法实现。

并发
并发是多个任务或操作在一段时间内,通过快速切换和合理分配时间片的方式,使得多个任务看似在同时进行处理的工作模式。其主要特点如下:

  • 任务切换:并发处理中的多个任务并不是真正意义上的同时执行,而是在短时间内快速地在不同任务之间进行切换。比如在咖啡店的场景中,店员在煮咖啡的等待时间内切换去进行收银、磨咖啡豆等其他工作。
  • 资源共享:多个并发任务通常共享有限的资源,例如在咖啡店中,店员和唯一的一台咖啡机就是一种资源共享的关系。
  • 不确定性:由于任务的执行是基于时间片和资源的分配情况进行切换的,所以任务执行的顺序和时间具有一定的不确定性,可能会受到系统调度、资源竞争等多种因素的影响。
  • 微观串行,宏观并行:从微观的瞬时时刻来看,同一时刻只能执行一个任务,是串行执行;但从宏观的一段时间来看,多个任务都在这段时间内得到了推进和处理,给人的感觉是它们在并行工作。

总的来说,并行侧重于多个任务在同一时刻依托各自独立的资源同步执行,强调资源的独立性和同步性;而并发侧重于利用任务间的空闲时间和资源共享,通过任务切换实现在一段时间内多个任务的快速推进,强调任务的切换和资源的高效利用。

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值