简单理解什么是同步阻塞/同步非阻塞,异步阻塞/异步非阻塞
声明:本篇思想非原创,系从老师处听来。因为CSDN发转载需要有原文链接,本篇没有原文链接,所以填的原创。
举个栗子
1、你在家做饭,用普通的汤锅,米放进去,就站在锅边,傻等饭熟。——这叫同步阻塞
单任务按顺序执行。
是不是觉得浪费了大量的时间,于是你想提高时间的利用效率。
2、还是用普通的汤锅,米放进去,然后继续回去打游戏,过一会就来看一次。——这叫同步非阻塞
多任务,定时查看任务执行状态。
时间的利用率稍微提升了一点点,还有没有办法再提升一点呢?
3、你去某宝淘了个电饭锅,饭熟了会自动跳闸的那种。米放进去,然后傻傻的看它怎么做饭的。——这叫异步阻塞
单任务,自动提交任务执行状态。
这有什么意义呢?完全没利用好电饭锅的优势啊
4、这回学聪明了,米放进去,按下按钮,然后就去打游戏了,等到跳闸的时候就去吃饭 。——这叫异步非阻塞
多任务,自动提交任务执行状态,合理分配,最大化利用资源。
这样是不是聪明了很多,时间的利用率大大提升。
相对于程序而言的 ,异步可以给你节省出更多的时间,让你去干别的事,同步只能由你自己主动去查看。
孰优孰劣不言而喻 。
阻塞和非阻塞,也很好理解。
同步阻塞,顺序执行,只能傻等,效率低下 。
同步非阻塞,稍微高明点,但是麻烦了很多,多做很多无用功。
异步阻塞,这个等于自断一臂,没啥大意义。
异步非阻塞,这才是异步的最佳用法。