Подтвердить что ты не робот

Каков максимальный размер запроса-очереди волей-библиотек

Я использую библиотеку Volley в Android, я хочу знать, что максимальный размер очереди разрешен с использованием библиотеки Volley. Я ничего не нашел, связанный с этим. Как я знаю, вам нужно добавить сетевой запрос в очередь, но я не знаю, что такое максимальный размер, который я могу поставить на параллельную очередь.

RequestQueue requestQueue = Volley.newRequestQueue(this);
.... // block of code
requestQueue.add(jsonObjectRequest);
4b9b3361

Ответ 1

Вероятно, вы путаете 2 вещи:

  • размер очереди ожидания
  • Максимальные параллельные сетевые запросы

Для размера очереди ожидания:

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

Volley использует PriorityBlockingQueue, который сам использует PriorityQueue с объемом по умолчанию 11.

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

Для максимальных параллельных сетевых запросов:

RequestQueue requestQueue = Volley.newRequestQueue(this);

вызовет

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

и это вызывает

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

и DEFAULT_NETWORK_THREAD_POOL_SIZE есть

private static final int DEFAULT_NETWORK_THREAD_POOL_SIZE = 4;

Таким образом, по умолчанию существует 4 параллельных потока, обрабатывающих запросы (так что запрос max 4 одновременно).


TL;DR

Размер очереди ожидания 11 и не может быть изменен; в то время как максимальные параллельные сетевые запросы равны 4, которые могут быть изменены с помощью конструктора RequestQueue.