Java面试:我终于理解了并发和并行的区别

这两个名词一定很多人听过,会不会有人理所当然的把这两个名词当成一个意思,其实这两者有着本质上的区别。

【Java面试】我终于理解了并发和并行的区别


用工作中开发来举个例子吧。

并发

同一时间有两个需求,需求A和B分配到了你的手上,而且这两个需求都很急,你为这两个需求分别开了两个分支A和B,一会儿需求A催你改代码,你切到了A的分支,一会儿B催你改代码,你又切到了需求B,你是一个人但是你具有处理并发事件的能力,在两个需求之间来回穿梭。

那么并行又是怎么样的呢?

并行

同一事件有两个需求,同样也很急,但是这个时候你不是一个人在战斗了,你有了新同事;需求A分配给了你,需求B分配了你的新同事,那么你就不用再去关心需求B做了什么,两个人分别处理各自在自己的分支上做需求。

最后说说串行,又来了一位新同事,但是是个实习生,你分配了两个很简单的任务A和B给他,但是他对切分支这个操作很陌生,他只能在做完了A任务后,才新开了一个分支B去做B任务。

画图理解

并发与并行
以前只有一个柜台可以买东西,有两个队伍,一会儿处理这个队伍,一会儿处理那个队伍叫并发。
现在有两柜台了,我只处理我这个队伍中的人就好了,叫并行。


最后引用深入理解计算机系统CSAPP的回答

并发(Concurrency)是说进程B的开始时间是在进程A的开始时间与结束时间之间,我们就说A和B是并发的。
并行(Parallel Execution)是并发的真子集,指同一时间两个进程运行在不同的机器上或者同一个机器不同的核心上。


总结

  • 并发是一个人做多件事,来回切换。
  • 并行是多个人做多件事,互不干涉。

参考资料

java多线程与并发(基础篇)
并发与并行的区别?

文章中出现的任何错误欢迎指正,共同进步!

最后做个小小广告,有对WEB开发和网络安全感兴趣的,可以加群一起学习和交流!

交流群
QQ:425343603

  • 11
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值