IO流(二)BIO,NIO,IOMultiplexing,AIO(阻塞非阻塞,同步异步区别)

用个小故事简单讲讲他们的区别吧

老王有一天要去银行取钱,有四家银行分别叫做,BIO银行,NIO银行,IOMultiplexing银行,AIO银行

1.老王去了BIO银行(同步阻塞

老王和柜员说:我要取30w人民币买辆自行车,
柜员说:好的,您请坐,请稍等。办理好后钱会自动到这个出钱口,请自提。
老王就在出钱口等了10min后拿走了30w

2.第二天老王来了NIO银行(同步非阻塞),

老王和柜员说:我要去300w人名币买个厕所,
柜员说:好的,先生在等待的时候你先去其他地方逛逛,等我这边处理好了,你就可以过来拿了。
老王:好的,那我去上个厕所,再来拿
2min后,老王:我的钱取好了吗?(轮询机制)
柜员:还没呢,你再去逛逛。
老王:你就不能好了之后通知我一下吗?
柜员:我们这没有喇叭…
一顿反复横跳之后,老王终于取走了300w

3.第三天老王来到了IOMultiplexing银行 (多用复路

老王和柜员说:我要取3000w买只会下蛋的母鸡
柜员说:好的,您请坐,请稍等。
这时老李来存钱了,柜员也同时帮他办理了。
老王说:不是我先来的吗,我的钱什么时候能取出来?
柜员说:存钱和取钱走的不是一条路,可以同时办理
老王:好吧。

4.第四天老王来到了AIO银行(异步

老王和柜员说:我要取3个亿给我三个儿子实现一下小目标
柜员说:好的,您可以回去了,钱到账了到时候会发短信通知您的。

简单再总结一下我理解的阻塞和非阻塞,同步和异步的区别。

阻塞和非阻塞:在发起请求在获取到结果的过程中,是否可以进行其他操作。(相对于该线程是否被堵塞了)
同步和异步:也就是主动获取结果和被动获取结果的差别,同步就是需要自己去轮询(NIO需要自己轮询通道的状态),异步则是会主动通知已经完成。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值