当前位置: 首页 > news >正文

《深入理解Android:Telephony原理剖析与最佳实践》一3.1 何为同步和异步

3.1 何为同步和异步

Android Telephony相关应用中,Telephony大量使用了Handler、Broadcast等通信方式,而在Android操作系统平台中的Handler消息处理、Broadcast广播消息等均采用异步通信机制,那么我们首先要清楚什么是异步通信机制,与它相对同步的通信机制是什么,有什么区别。
Synchronous(同步)和Asynchronous(异步)的概念最早来自通信领域。
通信的同步:指客户端在发送请求后,必须要在服务端有回应后客户端才继续发送其他请求,所以这时所有请求将会在服务端得到同步,直到服务端返回请求。
通信的异步:指客户端在发送请求后,不必等待服务端的回应就可以发送下一个请求,对所有的请求动作来说将会在服务端得到异步,这条请求的链路就像是一个请求队列,所有的请求动作在这里不会得到同步。
在软件世界中,我们常说的“同步和异步”,更多是指函数、方法调用的“同步和异步”,也就是“同步调用和异步调用”。
所谓同步调用,在发起一个函数或方法调用时,没有得到结果之前,该调用就不返回,直到返回结果;异步调用的概念和同步相对,在一个异步调用发起后,被调用者立即返回给调用者,但调用者不能立刻得到结果,被调用者在实际处理这个调用的请求完成后,通过状态、通知或回调等方式来通知调用者请求处理的结果。
注意 现在清楚同步和异步吗?简单地说,同步就是发出一个请求后什么事都不做,一直等待请求返回后才会继续做事;异步就是发出请求后继续去做其他事,这个请求处理完成后会通知你,这时候就可以处理这个回应了。
   单从任务调用来讲,对于同一个任务,异步调用并不能加快这个任务的执行速度和效率,相反会降低执行速度和效率。站在整个系统的层面上考虑,异步调用使得整个系统的性能效率提高,各个组件之间运行配合更加协调。这才是异步调用的真正优点。

相关文章:

  • 《C语言程序设计》一 2.5 案例学习——华氏温度与摄氏温度的转换
  • 安防傍上物联网能否迎来硬件免费时代?
  • 深入探析koa之异步回调处理篇
  • 方法和数组
  • 物联网网络技术市场的发展
  • centos中安装mysql
  • 日志收集+分析+报警 logstash
  • 请问一下发博中出现的问题
  • Educational Codeforces Round 26
  • Android 带你撸一个好玩的 DoodleView(涂鸦)
  • javascript中的this和e.target的深入研究
  • 2017-08-04 前端日报
  • 二叉树的最小深度 Minimum Depth of Binary Tree
  • 告别ASP.NET操作EXCEL的烦恼(总结篇)
  • 一个简单RPC框架是怎样炼成的(VI)——引入服务注冊机制
  • 2017年终总结、随想
  • Apache Spark Streaming 使用实例
  • CEF与代理
  • Flex布局到底解决了什么问题
  • Go 语言编译器的 //go: 详解
  • nginx 负载服务器优化
  • Node项目之评分系统(二)- 数据库设计
  • Python十分钟制作属于你自己的个性logo
  • Sass 快速入门教程
  • 初识MongoDB分片
  • 当SetTimeout遇到了字符串
  • 回顾 Swift 多平台移植进度 #2
  • 日剧·日综资源集合(建议收藏)
  • 微信支付JSAPI,实测!终极方案
  • 最简单的无缝轮播
  • 阿里云API、SDK和CLI应用实践方案
  • ​如何防止网络攻击?
  • !!Dom4j 学习笔记
  • #{}和${}的区别是什么 -- java面试
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (1)Nginx简介和安装教程
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (待修改)PyG安装步骤
  • (附源码)php投票系统 毕业设计 121500
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (三十五)大数据实战——Superset可视化平台搭建
  • (五)c52学习之旅-静态数码管
  • (一)基于IDEA的JAVA基础12
  • (转)四层和七层负载均衡的区别
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .net(C#)中String.Format如何使用
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET框架设计—常被忽视的C#设计技巧
  • ??在JSP中,java和JavaScript如何交互?
  • @Transaction注解失效的几种场景(附有示例代码)
  • [BZOJ] 3262: 陌上花开
  • [c++] 自写 MyString 类
  • [CC-FNCS]Chef and Churu