同步异步,阻塞非阻塞

同步异步,阻塞非阻塞

我们首先要知道同步异步是什么?

而阻塞非阻塞又是什么?

这两种不是同样的概念:

因为:

同步异步:是指一种消息通知方式(关注的是进程在发送请求后,如何知道对方是否已经消息回馈)

  1. 同步:就是指发送方发送一个申请的时候,在没接收到回馈的消息的时候,就一直不断的去探测查看对方是否已经回馈。
  2. 异步:就是指发送方发送一个申请的时候,发送方不会去不断探测,而是当对方消息回馈后,通过系统内核消息通知机制,来通知发送方对方已经回馈了。

阻塞非阻塞:是指发出请求后,等待的状态(关注的是进程在发送请求后,等待对方消息回馈时的状态)

  1. 阻塞:就是指发送方发送一个申请的时候,在没接收到回馈的消息的时候,就一直等待,啥都不做,等待对方发的回馈消息过来。
  2. 非阻塞:就是指发送方发送一个申请的时候,在没接收到回馈的消息的时候,不会去一直等待,会去做其他的事情。

 

两者应该结合起来看:

  1. 同步阻塞:发送方发送请求的时候,其他事都不干,就只不断的去探测对方是否回馈了消息。
  2. 同步非阻塞:发送方发送请求的时候,马上去做其他事,不过还是没事就要去探测对方是否回馈了消息。
  3. 异步阻塞:发送方发送请求的时候,其他事都不干,就坐等系统内核通知自己对方消息已经回馈了。
  4. 异步非阻塞:发送方发送请求的时候,马上去做其他事,也不去探测对方是否回馈了消息,光等系统内核通知就好。

 

我们这样形容还是不生动,所以举个现实中的例子:

老王要烧热水做饭,家里有一个普通水壶和一个响水壶,所以上面4种情况可以这样看:

  1. 同步阻塞:老王用普通水壶接好水开始烧水,然后也不洗菜了,就站在水壶旁边没事看一眼水壶水烧开了没有。
  2. 同步非阻塞:老王用普通水壶接好水开始烧水,同时开始洗菜,洗菜的途中没事看一眼水壶水烧开了没有。
  3. 异步阻塞:老王用响水壶接好水开始烧水,然后也不洗菜了,也不看水壶水烧开了没有,就等着听响水壶水烧开后的响声,就知道水烧开了。
  4. 异步非阻塞:老王用响水壶接好水开始烧水,同时开始洗菜,洗菜的途中也不看水壶水烧开了没有,就等着听响水壶水烧开后的响声,就知道水烧开了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值