浅谈同步、异步、阻塞、非阻塞,同步阻塞、同步非阻塞、异步阻塞

同步与异步:

获取结果(通信方式)的方式不同,

调用者调用方法后,调用者去获取方法的结果,这就是同步

调用者调用方法后,方法自己去处理结果,然后处理完通知调用者,这就是异步

阻塞与非阻塞:

在调用者调用方法后,结果没有之前,调用者是否可用做其他事情

调用者调用方法后,结果没有之前,调用者不可以去做其他事情,这就是阻塞

调用者调用方法后,结果没有之前,调用者可以用去做其他事情,这就是非阻塞

同步阻塞:调用者调用方法后,结果没有之前调用者要去获取方法的结果,调用者要一直等待方法产生结果,才可以去做其他事情

同步非阻塞:调用者调用方法后,结果没有之前调用者要去获取方法的结果,调用者此时不必等待方法产生结果,可以去做其他事情,然后在做其他事情时通过问询的方式最终获取方法的结果

异步非阻塞:调用者调用方法后,结果没有之前方法自己处理结果然后处理完通知调用者,调用者此时可以去做其他事情,也不用问询,方法自己通过回调或者消息通信等方式通知调用者

注意:
同步阻塞、同步非阻塞、异步非阻塞它们之间只有应用场景不同,没有优劣之分,并不一定说异步非阻塞就比同步阻塞高明
至于异步阻塞这个鬼,我是真没听说过哪里有用到

以下是个人的一些理解(结合了某乎高赞)

同步阻塞:你打电话告诉书店老板你要买某书,老板拿起电话后说:“我不知道有没有货,现在去查“此时没有挂断电话,老板没有告诉你结果,你什么也不知道,在得到任何结果之前,你一直拿着电话干等,你此时什么也干不了就在等。30分钟后老板说有货,这时你去书店拿书。你去书店拿书,这是同步。你一直拿着电话等结果不可以做其他事情,这是阻塞。

同步非阻塞:你打电话告诉书店老板你要买某书,老板拿起电话后说:“我不知道有没有货,现在去查”便挂了电话,又过了10分种你第二次打电话问结果,老板拿起电话说完“还没有查到,你再等会儿”便挂断电话。挂断电话5分钟后老板查到有书,但并没有主动打电话告诉你。你再次等待10分钟后第三次电话老板问结果,老板说“书有了”,你断挂电话。然后你去书店拿书,这是同步。每10分钟打电话询问结果(问询),期间可以做其他的事情,这是非阻塞。

异步非阻塞:你打电话过去后问书店老板有没有某书,老板说:“我不知道有没有货,现在去查,有货我直接给你送上门”就挂掉电话。然后你想干嘛干嘛。老板主动给你送书上门,这是异步。挂了电话后你就想干嘛干嘛可以做其他事情,也不用打电话问结果了,这是非阻塞。

异步阻塞:你打电话过去问书店老板有没有某书,老板说:“我不知道有没有货,现在去查,有货了给你送上门“就挂掉电话。然后每过10分钟你就打电话问老板结果,在老板没说有货还是没货期间,你每过10分钟都会打电话问老板,等电话问出结果期间你什么也不干,有结果后老板送书上门。老板主动送书上门,这是异步。等待老板的电话期间你不可以做其他事情,这是阻塞。

以上只是个人理解,有疑问欢迎指出

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跟着上帝去流浪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值