一文读懂阻塞与非阻塞,同步与异步

我们先用一个生活中的例子来感受下

老李早上去公司想上厕所,但是坑不够 ,只有5个,此时 5个坑全满了老李有以下几个反应

同步阻塞

坑满了,此时老李在厕所里等着,并且啥事也不做 (阻塞),一直盯着这5个坑位,直到有人出来 (同步返回结果),他立马去抢这个坑位。

同步非阻塞

坑满了,由于老李平时很爱学习,加上不是很急,此时老李,拿出了手机,看csdn技术博客学习 (非阻塞),但是时不时 观察是否有人从厕所里出来,一旦有人出来 (同步返回结果),他就去抢这个坑位

异步阻塞

坑满了,但是老李有点傻,闭着眼,啥事不干 (阻塞),等有个人出来,看老李傻等着,自己出来了也没反应,就喊了一声,“老李 有坑了 你可以去蹲了” (异步回调返回),老李此时听到消息,立马冲了进去

异步非阻塞

坑满了,老李爱学习拿出手机一直刷技术博客csdn (非阻塞),然后一个人出来了,看老李还在刷博客,自己出来了 还不知道去蹲坑,就喊了一声,“老李 有坑了 你可以去蹲了”(异步回调返回),此时老李 放下手机才去蹲坑。

什么是阻塞、非阻塞

阻塞非阻塞,就是某个线程(老李)访问一个资源(坑位),该资源是否准备就绪的 不同处理方式。
比如,老李访问 坑位,坑位没准备好,老李啥都不能做,就是阻塞;若是立即去做 其他事 就是非阻塞

什么是同步、异步

同步异步是指访问数据的返回方式
主动请求某数据,并且立即返回就是 同步;
主动请求某数据,但是,不是立即返回,是需要别人 通知 请求者,才能获取结果 这就是异步;

BIO(同步阻塞IO)、NIO(同步非阻塞IO)、AIO (异步IO)

引用一张网上的图片
源自:风间影月 大佬
在这里插入图片描述

done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值