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

同步异步

作者头像
见贤思齊
发布2020-08-05 15:38:11
1.2K0
发布2020-08-05 15:38:11
举报
文章被收录于专栏:初见Linux

一.同步与异步

同步和异步关注点为消息通信机制 (synchronous communication/ asynchronous communication)

1.同步

就是在用户发出一个调用(请求)时,在没有得到(响应)结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由调用者主动等待这个调用的结果,在没得到结果时,我会一直等待结果不去理会其他事。

同步总是按照“甲方请求一次,乙方应答一次”这样的有序序列处理业务,只有当“一次请求一次应答”的过程结束才可以发生下一次的“一次请求一次应答”,那么就说他们采用的是同步。

(同步IO中,对同一个描述符的操作必须是有序的)

2.异步

与同步相反,调用(请求)在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果(响应)。而是在调用发出后,被调用者通过状态、通知来通知调用者,或通过回调函数处理这个调用。

如果甲方只要有需要,就会发送请求,不管上次请求有没有得到乙方应答。而乙方只要甲方有请求就会接受,不是等这次请求处理完毕再接受甲方新请求。这样请求应答分开的序列,就可以认为是异步。异步情况下,请求和应答不需要一致进行,可能甲方后请求的业务,却先得到乙方的应答。同步是线性的,而异步可以认为是并发的。

(异步IO中,异步IO可以允许多方同时对同一个描述符发送IO请求,或者一次发多个请求,当然有机制保证如何区分这些请求)

3.趣味理解

比如说,早晨起来我得进行刷牙、洗脸、照镜子、吃早餐、读报纸这五件事。 按同步来讲,我必须得先刷牙、然后洗脸、再然后照镜子、其次吃早餐,最后读报纸。依次做完每件事,不得同时做。 按异步来讲,我在刷牙时也可以照照镜子,洗脸时也可以照镜子看哪块洗得不干净,然后把脏的地方再好好洗一洗,吃早餐的时候拿着报纸,一边看一边吃。

4.总结

同步:调用1次即得1次的返回值。 异步:调用1次,返回值可以不立即返回; ​ 调用多次或多方调用一个请求,返回值可以不分先后次序返回。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.同步与异步
    • 1.同步
      • 2.异步
        • 3.趣味理解
          • 4.总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档