Volley随笔之网络线程和缓存线程

一、网络线程 NetworkDispatcher

Volley框架中提供NetworkDispatcher类作为工作线程(work thread)处理网络请求,它继承了Thread。NetworkDispatcher在其run()方法中调用了

Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);


将网络请求线程的优先级设置成后台线程,后台线程是一个比一般线程优先级低的线程,不过能够最小限度的影响用户界面响应。
工作线程先从请求网络队列networkQueue中读取Request,然后执行网络请求,接着解析返回数据,最后判断数据是否需要缓存,整个过程都在工作线程的run()方法中实现。

二、缓存线程 CacheDispatcher

Volley框架提供CacheDispatcher类作为缓存线程来处理请求的缓存,它集成了Thread类,也同样是后台线程。CacheDispatcher每次会从缓存队列cacheQueue中获取网络请求,如果缓存中上次网络请求的返回数据没有过期,则不执行网络操作而直接返回给客户端缓存数据;如果缓存数据过期,则将请求放到网络队列networkQueue。

三、请求队列 RequestQueue

RequestQueue类在初始化的时候,会创建一个CacheDispatcher缓存线程和多个NetworkDispatcher网络线程。每次向队列RequestQueue添加网络请求Request的时候,队列会检查请求是否有缓存标志cacheKey,如果没有改标识则直接将请求放到网络队列networkQueue,如果有该标识则将请求放到缓存队列cacheQueue。


转载于:https://my.oschina.net/u/1375497/blog/489563

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值