计算机系统应用教程网站

网站首页 > 技术文章 正文

面试不怕系列之:同步vs异步,阻塞vs非阻塞

btikc 2024-10-01 08:31:35 技术文章 12 ℃ 0 评论

你最近去面试了吗?有没有被问到色色乏抖? 三分钟看懂同步异步阻塞非阻塞,让你面试侃侃而谈,征服美女面试官!

同步

所谓同步,就是一个任务的完成依赖另一个任务时,只有等待被依赖的任务完成后,依赖的任务才能完成,这是一种可靠的任务序列。要成功都成功,要失败都失败,两个任务的状态可以保持一致。

典型例子:打电话

异步

异步不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行,只要自己完成了整个任务就算完成了。至于被依赖的任务是否真正完成,依赖它的任务无法确定,所以它是不可靠的任务序列。

典型例子:发短信

阻塞

阻塞就是CPU停下来等待一个慢的操作完成后,CPU才接着完成其他工作。

非阻塞

非阻塞就是在这个慢的操作执行时,CPU去做其他工作,等这个慢的操作完成后,CPU再接着完成后续的操作。

总结:

1. 同步和异步主要是在涉及I/O处理时的方式选择。通常情况下I/O都是一个非常耗时的操作,在一个任务序列中I/O通常都是性能瓶颈,同步能保证可靠性,异步可以提升程序性能,所以要在可靠性和性能之间平衡来选择同步和异步的处理方式。

2. 阻塞和非阻塞主要是从CPU消耗上来说的。

表面上看非阻塞可以显著地提高CPU利用率,但是同时也增加了系统切换线程的负担,增加的CPU使用时间能否补偿系统的线程切换成本需要评估权衡。

组合方式及性能分析

看完以上内容,面试再被问到的话应该心里有数了吧。拿下面试官,迎娶白富美,走向人生巅峰指日可待。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表