一起Talk Android吧(第三百三十七回: Android中的Volley二)

各位看官们,大家好,上一回中咱们说的是Android中Volley的例子,这一回中咱们继续说此例子。闲话休提,言归正转。让我们一起Talk Android吧!

看官们,我们在上一章回中介绍了Volley的用法,本章回将分析一下它的原理。

Volley创建了请求队列用来管理多个请求,同时它还创建了三个线程用来发起和响应请求。当我们使用add()方法把请求添加到请求队列中后,Volley会运行一个缓存处理线程(cache thread)和一个网络调度线程池(network threads)。主线程(main thread)将请求添加到请求队列后,缓存线程会获取该请求并对其进行分类:如果该请求可以通过缓存处理,系统会在缓存线程上解析缓存的响应,并在主线程(main thread)上传送解析后的响应。如果该请求无法通过缓存处理,则系统会将其放置到网络队列中。网络调度线程池会把第一个可用的网络线程会从网络队列中取出,然后发起请求并且在网络线程上解析服务器对请求的响应,最后将响应写入缓存,缓存再把解析后的响应发送回主线程。

这是从发起请求到获得请求响应的整个过程(生命周期),下面是该过程的图形描述(来自官网):

在这里插入图片描述

我对Volley的三个线程做了总结:

  • 1.网络线程是核心,它负责发起请求和解析服务器对请求的响应;
  • 2.网络线程相当于主线程的一个子线程,多个网络线程通过网络线程池管理,主要用来处理多个请求(并发);
  • 3.缓冲线程是网络线程的助手,在网络线程运行前它会对请求进行分类和处理;在网络线程解析完请求的响应后会把请求的响应发给主线程;
  • 4.主线程主要做两件事:把请求添加到请求队列,接收请求的响应;

看官们,关于Volley的原理就介绍到这里,如果有看官感兴趣,那么可以去看Volley的源代码。我们在这里就不详细介绍了,毕竟源代码不是一个章回可以介绍完的。此外看源码时就会发现Volley封装了HttpURLConnection类相关的操作,我们可以将Volley理解成HttpURLConnection类的超级封装。

看官们,关于Android中Volley的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值