调用Call.enqueue(),会执行Dispatcher.enqueue(),将请求先放入readyAsyncCalls中,然后调用Dispatcher.promoteAndExecute()对readyAsyncCalls进行遍历,若runningAsyncCalls队列大小大于maxRequest值(默认大小为64)则中止遍历,否则继续执行,若一个请求的请求域名,在runningAsyncCalls中请求相同域名的请求数小于maxRequestsPreHost(默认大小为5),就把该请求从readyAsyncCalls中移到runningAsyncCalls。
调用Dispatcher.setMaxRequests(),Dispatcher.setMaxRequestsPreHost()和当一个异步线程执行完都会调用Dispatcher.promoteAndExecute()。