在Android的API当中handler消息处理、Broadcast广播消息等均采用异步通信机制。什么是异步通信机制呢?和它相对的同步通信机制又是什么呢?有什么区别呢?

Synchronous(同步)和Asynchronous(异步)的概念最早来自通信领域。

通信的同步:指客户端在发送请求后,必须要在服务端有回应后客户端才继续发送其他请求,所以这时所有请求将会在服务端得到同步,直到服务端返回请求。

通信的异步:指客户端在发送请求后,不必等待服务端的回应就可以发送下一个请求,对所有的请求动作来说将会在服务端得到异步,这条请求的链路就像是一个请求队列,所有的请求动作在这里不会得到同步。

在软件世界中,我们常说的“同步和异步”,更多是指函数、方法调用的“同步和异步”,也就是“同步调用和异步调用”。

所谓同步调用,在发起一个函数或方法调用时,没有得到结果之前,该调用就不返回,直到返回结果;异步调用的概念和同步相对,在一个异步调用发起后,被调用者立即返回给调用者,但调用者不能立刻得到结果,被调用者在实际处理这个调用的请求完成后,通过状态、通知或回调等方式来通知调用者请求处理的结果。

注意 现在清楚同步和异步吗?简单地说,同步就是发出一个请求后什么事都不做,一直等待请求返回后才会继续做事;异步就是发出请求后继续去做其他事,这个请求处理完成后会通知你,这时候就可以处理这个回应了。

单从任务调用来讲,对于同一个任务,异步调用并不能加快这个任务的执行速度和效率,相反会降低执行速度和效率。站在整个系统的层面上考虑,异步调用使得整个系统的性能效率提高,各个组件之间运行配合更加协调。这才是异步调用的真正优点。

所谓异步输入输出机制,是指在进行输入输出处理时,不必等到输入输出处理完毕才返回。所以异步的同义语是非阻塞(None Blocking)。

网上有很多网友用很通俗的比喻 把同步和异步讲解的很透彻 转过来

举个例子:普通B/S模式(同步)AJAX技术(异步)

同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事

异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕

同步就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。

异步就是你叫我,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。

所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。

以通讯为例

同步:发送一个请求,等待返回,然后再发送下一个请求

异步:发送一个请求,不等待返回,随时可以再发送下一个请求

并发:同时发送多个请求

android多个请求同步,Android的同步和异步理解相关推荐

  1. Android的post请求工具,Android客户端post请求服务器端实例

    Android客户端请求服务器端的详细解释 1. Android客户端与服务器端通信方式:Android与服务器通信通常采用HTTP通信方式和Socket通信方式,而HTTP通信方式又分get和pos ...

  2. Android的post请求工具,android HttpClient get请求与post请求工具类

    今天在学习android的http通信时,在一个网上的demo中,发现了一个个人感觉比较好用的HttpClient发送get请求与post请求的工具类,所以个人把它整理与修改了一下,希望能够帮助有需要 ...

  3. 魔趣(Mokee)开源代码(android 7.1.2 Android8.1)同步下载

    一.下载代码 使用魔趣repo镜像 1.在当前用户的根目录创建bin文件夹,并添加到系统环境变量中. $ mkdir ~/bin $ PATH=~/bin:$PATH 2.下载Repo并给予执行权限 ...

  4. android 多线程实现方式、并发与同步学习总结

    参考地址:http://blog.csdn.net/qq_30379689/article/details/72550701#面向对象和面向过程的区别 http://blog.csdn.net/csd ...

  5. Android系统开发篇(三) —— Android AOSP 9.0源码的同步与编译

    上回书我们说到,Ubuntu系统的安装和配置,既然是Android系统的开发,那我们就要有Android系统,那好,目标很明确,接下来我们就来操作,看看源码是怎么来的 一.Android 源码下载(同 ...

  6. 同步Android与PC的时间

    同步Android与PC的时间 在做一些网络延迟测试的时候,需要同步Android设备或者模拟器与PC的时间(要不然无法准确计算延迟),在这里记一下获取Android的时间戳以及MacOS的时间戳,均 ...

  7. android开发歌词滑动效果_Android 歌词同步滚动效果

    歌词是播放器类App必不可少的组件,而一般的歌词组件都需要做到歌词的显示与播放进度同步.我们知道,歌词是如下所示的文件: lrc [ti:原来爱情这么伤] [ar:梁咏琪] [al:给自己的情歌] [ ...

  8. android耳机音量与外放音量同步

    android耳机音量与外放音量同步 打开文件:frameworks\base\services\core\java\com\android\server\audio\AudioService.jav ...

  9. Android多线程实现方式及并发与同步,技术详细介绍

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fdcyorlw-1617703305737)(//upload-images.jianshu.io/upload_ima ...

  10. android 自动备份到局域网,Android和PC端通过局域网文件同步

    本文为大家分享了Android和PC端通过局域网文件同步的具体代码,供大家参考,具体内容如下 public class FileOptions { public String name; public ...

最新文章

  1. matlab disp fprinr,matlab如何使输出结果更美观(symdisp函数——pretty函数升级版)
  2. vue 心跳监控_【笔记】vue中websocket心跳机制
  3. Oracle 查询数据表中的字段数据是否有重复
  4. springboot(1)使用SpringBoot基础HTTP接口GET|POST|DELETE|PUT请求
  5. 模式识别之分类---数学贝叶斯方法
  6. JS 判断滚动底部并加载更多效果。。。。。。。。。
  7. 【转】CMMI环境下,该如何实施Agile?
  8. java ppt转html_word,ppt,excel转pdf,pdf转html工具类搭建
  9. ASP.NET (C#开发环境)Request对象 之 ServerVariables集合
  10. 自动生成html_python自动化测试中pytest的使用
  11. 云服务器性能对照表,云服务器 性能对比
  12. android tf卡及u盘_android8.1系统修改第三方app无法读写U盘或者内部SD卡的问题
  13. 光耦驱动单向可控硅_隔离开关电源继电器ssr输出限流电阻,逻辑性光耦驱动单向可控硅电路...
  14. 韩国多佑集团软件和服务外包基地纳米大厦大连揭幕
  15. 数学建模:预测性模型学习——灰色预测模型(GM(1,1)模型)
  16. 信用卡迎来史上最强风控?利用数据挖掘进行信用卡评分,提高银行的客户风险识别能力
  17. 怎么开始学一门计算机语言有哪些,如何学习(自学)一门编程语言
  18. CC And MC Introduce
  19. 在word发现粘贴复制的快捷键失效,如何进行操作?
  20. Android运行时权限终极方案,用PermissionX吧

热门文章

  1. linux raid mdadm,Linux软阵列 用mdadm做RAID实验
  2. 微信小程序开发扫条码wx.scanCode报scanCode:fail
  3. 【计算机网络】第三章数据链路层知识点及经典例题汇总
  4. 【华人学者风采】关美宝 香港中文大学
  5. vscode remote ssh无法连接服务器 ——.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC不是可识别的文件,程序
  6. python官网教程怎么下载,python官网教程在哪
  7. 【向量范数】常见范数——0-范数,1-范数,2-范数,无穷范数,P-范数
  8. 数据结构与算法(十三)删除二叉树结点
  9. mysql 实例可用性_转载:MySQL数据库的高可用性分析
  10. java输出m行n列方格_java从键盘输入两个整数m、n,生成一个m行n列的二维数组,对数组进行任...