What is the Maximum Size of the Volley-Library Request-Queue

后端 未结 1 1103
北恋
北恋 2020-12-29 10:23

I am using Volley library in Android, I want to know what is maximum size of queue is allowed using Volley library. There is nothing I found relate

相关标签:
1条回答
  • 2020-12-29 11:08

    You are probably confusing 2 things:

    • wating queue size
    • max parallel network requests

    For waiting queue size:

    /** The queue of requests that are actually going out to the network. */
    private final PriorityBlockingQueue<Request<?>> mNetworkQueue =
        new PriorityBlockingQueue<Request<?>>();
    

    Volley uses a PriorityBlockingQueue which itself uses a PriorityQueue with a initial capacity of 11, but will automatically grow, so there should be no reasonable limit.

    private static final int DEFAULT_INITIAL_CAPACITY = 11;
    ...
    public PriorityQueue() {
        this(DEFAULT_INITIAL_CAPACITY, null);
    }
    

    For max parallel network requests:

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    

    will call

    RequestQueue queue = new RequestQueue(new DiskBasedCache(cacheDir), network);
    

    and this calls

    public RequestQueue(Cache cache, Network network) {
            this(cache, network, DEFAULT_NETWORK_THREAD_POOL_SIZE);
        }
    

    and DEFAULT_NETWORK_THREAD_POOL_SIZE is

    private static final int DEFAULT_NETWORK_THREAD_POOL_SIZE = 4;
    

    So by default there are 4 concurrent threads handling the requests (so max 4 request at the same time).


    Waiting queue size is Integer.MAX ie. basically limitless; while max parallel network requests are 4, which can be changed with the RequestQueue constructor.

    0 讨论(0)
提交回复
热议问题