Volley库是否按顺序处理所有请求

时间:2014-03-30 13:06:13

标签: android android-volley

我正在使用volley库来执行网络操作以加快速度。我的问题是Volley是否执行顺序或并行添加到队列中的请求。

假设我添加了Req1,Req2,Req3这样的请求,它们会开始并行运行还是第二次请求会等到第一次完成?

2 个答案:

答案 0 :(得分:2)

根据Volley documentation

Volley维护着几个网络线程。如果一个线程没有做任何事情,那么它将占用队列中的一个工作。

要回答您的问题,Req1,Req2和Req3将分别放在工作线程中并且将并行运行。

Volley还会缓存您下载的数据(并根据下载数据的HTTP标头中的过期时间确定是否重新下载),因此如果您的数据不需要再次下载,则会从缓存中获取,这比重新下载要快。

这些是Volley在适合使用它的情况下宣称比标准网络操作更快的一些原因。当然,您可以自己实现这一点,但Google为您做了很多艰苦的工作。

答案 1 :(得分:0)

通常,队列会根据排队的顺序启动每个操作,除非它是优先级队列。

因此,假设优先级相同(假设排球队列是非优先级队列),我们可以得出结论:Req1将首先获得开始。然后是Req2,然后是Req3

但是,我们可以保证每个完成的订单。如果Req1非常耗时,则请求的排序顺序将不同于Req1Req2Req3

我们可以保证的是,它们将按照Req1Req2Req3的顺序启动。