Android 改进2队列等待大小
我是翻新2图书馆的新成员,我想知道:排队等候的最大呼叫数是多少Android 改进2队列等待大小,android,retrofit,retrofit2,Android,Retrofit,Retrofit2,我是翻新2图书馆的新成员,我想知道:排队等候的最大呼叫数是多少 它是否使用了PriorityBlockingQueue,这是一个自增长的队列?这个问题让我想深入了解改型源代码。这是我的结果,这可能不正确,但我想与大家分享。如果你找到更好的答案,请纠正我 代码包含maxRequestsinfo is class,它们使用DequenotPriorityBlockingQueue: public final class Dispatcher { private int maxRequests
它是否使用了PriorityBlockingQueue,这是一个自增长的队列?这个问题让我想深入了解
改型
源代码。这是我的结果,这可能不正确,但我想与大家分享。如果你找到更好的答案,请纠正我
代码包含maxRequests
info is class,它们使用Deque
notPriorityBlockingQueue
:
public final class Dispatcher {
private int maxRequests = 64;
private int maxRequestsPerHost = 5;
....
正如文件所说:
每个调度程序都使用一个ExecutorService
在内部运行调用。如果您提供自己的执行器,它应该能够同时运行{@linkplain#getMaxRequests配置的最大}
调用数
也就是说,并发调用的最大数量取决于您的操作:
- 如果您提供
(通过使用),则可以按函数设置其ExcutorService
值maxRequests
- 如果不这样做,它将使用默认值its与默认值64并发请求
Dispatcher
类中看到此功能代码:
synchronized void enqueue(AsyncCall call) {
if (runningAsyncCalls.size() < maxRequests && runningCallsForHost(call) < maxRequestsPerHost) {
runningAsyncCalls.add(call);
executorService().execute(call);
} else {
readyAsyncCalls.add(call);
}
}
synchronized void排队(异步调用){
if(runningAsyncCalls.size()
如果达到
runningAsyncCalls
队列大小maxRequests
(并发请求),新的call
将添加到readyAsyncCalls
,此队列
没有大小限制,这意味着最大调用值将是整数。最大值
我稍微改写了您的问题,以使其更清楚,请查看我的更改。您刚刚回答了“有多少并发请求可以同时发生”的问题在网络线程执行之前,队列中不能容纳多少请求。