[Android]Volley源码分析(三)
上篇看了关于Request的源码,这篇接着来看下RequestQueue的源码。 RequestQueue类图: RequestQueue是一个请求调度队列,里面包含多个NetworkDispatcher调度器与一个CacheDispatcher调度器 主要属性: mSequenceGenerator: 请求序号生成器 mWaitingRequests: Staging area for requests that already have a duplicate request in flight. 相当于一个等待队列,根据请求url来将以前发起过的请求先加入这个队列中。避免同样的请求多次发送。 mCurrentRequests: 正在被请求队列处理的请求集合 mCacheQueue: 请求缓存队列,请求可以被缓存也可以不缓存,保存可以缓存的请求 mNetworkQueue: 需要进行网络访问的请求队列 mCache: 可以保存与获取请求响应的缓存,把请求响应保存在disk中 mNetwork: 真正执行Http请求的网络接口 mDelivery: 将请求响应进行解析并交付给请求发起者 mDispatchers: 网络请求调度器,每一个调度器都是一个线程 mCacheDispatcher: 缓存调度器 主要方法: start(),启动所有调度器线程 1 /** 2 *