OKHttp
OkHttpClient
Request
Call
RealCall implement Call 是真正的
call.enqueue() 中有判断,同一个请求只能执行一次
Response
主线流程
线程池
public synchronized ExecutorService executorService() {
if (executorService == null) {
executorService = new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60, TimeUnit.SECONDS,
new SynchronousQueue<Runnable>(), Util.threadFactory("OkHttp Dispatcher", false));
}
return executorService;
}
OkHttp中使用了缓存线程池,0核心线程,60秒缓存,并发控制依赖于Dispatcher中的最大请求数量控制