android多个请求同步,Android的同步和异步理解

本文深入解析Android API中的异步通信机制,如Handler和Broadcast广播消息。同步通信等待服务端响应,而异步则允许客户端在等待响应期间继续执行其他任务,提高了系统整体效率。异步输入输出机制意味着不必等到处理完成即可继续,与阻塞式(同步)通信形成对比。在软件开发中,异步调用通过回调、通知等方式确保请求处理结果的传递。
摘要由CSDN通过智能技术生成

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

以通讯为例

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

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

并发:同时发送多个请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值