前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >同步与异步 阻塞与非阻塞

同步与异步 阻塞与非阻塞

作者头像
用户3003813
发布2018-09-06 13:58:09
1.1K0
发布2018-09-06 13:58:09
举报
文章被收录于专栏:个人分享个人分享

1.1所采用生活中的事件:

          我要去银行办理存钱业务,因为人多,需要排队等待。

          1)排队分为在队伍中等待和取号等待两种。在队伍中等待,那么我就需要不断的看看前面的人办理完了没。如果选择取号等待,那么我就比较安逸了,我就不必去管前面的人是否已经办理,我只需要等待别人通知我就行了。也就是这两种方式,一种是自己去做,一种是别人来做。二者孰优孰劣,一目了然。

          2)当然,在排队过程中,我们有时候会打电话发短信看书等来消磨时间。那么如果是在队伍中等待,我进行打电话发短信看书的动作,那么我既要看前面的人是否办理完毕,又要进行打电话发短信和看书的动作,实在是费力啊。而如果我是选择取号等待呢,那么我就坐在沙发上,打电话发短信看书,一心一用,爽哉。

1.2对应技术的问题:

          我所选择的排队方式就对应同步与异步。在队伍中等待就是同步,取号等待就是异步。

          我在等待过程中,能够进行打电话发短信看书的动作,就是非阻塞。如果在等待过程中,不能够进行打电话发短信看书的动作,那就是阻塞。

1.3小结:

     同步和异步仅仅是关于所关注的消息如何通知的机制,而不是处理消息的机制.也就是说,同步的情况下,是由处理消息者自己去等待消息是否被触发,而异步的情况下是由触发机制来通知处理消息者

2.同步、异步、阻塞、非阻塞的理解

2.1同步阻塞I/O

     官方解释:用户空间的应用程序执行一个系统调用时,会导致应用程序阻塞。只有等系统调用结束(数据传输完成或发生错误),用户控件的应用程序才会继续执行。

     我的理解:就是我去银行存钱时,我不得不在队伍中排队等待,而且在等待过程中我啥都不能干,只能等着。多么苦闷啊。

2.2同步非阻塞I/O

     官方解释:

     我的理解:我去银行存钱时,我不得不在队伍中排队等待,但我在等待过程中我还会打电话看书。我既要看前面的人是否结束业务的办理,又要打电话看书,太累了。程序猿苦逼,排队办业务还得一心两用。

 2.3异步阻塞I/O

     官方解释:另外一个阻塞解决方案是带有阻塞通知的非阻塞 I/O。在这种模型中,配置的是非阻塞 I/O,然后使用阻塞 select 系统调用来确定一个 I/O 描述符何时有操作。使 select 调用非常有趣的是它可以用来为多个描述符提供通知,而不仅仅为一个描述符提供通知。对于每个提示符来说,我们可以请求这个描述符可以写数据、有读数据可用以及是否发生错误的通知。(理解有难度)

     我的理解:我去银行存钱时,我取号等待,我就等着别人来通知我办理业务,但是在等待过程中,我什么都不能做,只能等待。想想你在等待过程中,啥都不能做,是多么难受。

2.4 异步非阻塞I/O(AIO)

     官方解释:异步非阻塞 I/O 模型是一种处理与 I/O 重叠进行的模型。读请求会立即返回,说明 read 请求已经成功发起了。在后台完成读操作时,应用程序然后会执行其他处理操作。当 read 的响应到达时,就会产生一个信号或执行一个基于线程的回调函数来完成这次 I/O 处理过程。

     我的理解:我去银行存钱时,取号等待,在等待时我可以看看书打打电话,等着别人通知我就可以啦。

3.总结

     同步与异步是一组相对概念,针对的是自己等待还是别人通知

     阻塞和非阻塞是一组相对概念,针对的是等待过程中,等待者的操作。

转自:http://blog.csdn.net/yankai0219/article/details/8018232

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-12-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档