注:什麼是SPDY:http://baike.baidu.com/link?url=yBgdky_0rZCfbxkj2ZY3r46Ior60B62w_2-k9nf8WFrkB3zsttjHL8dQJZrUn1HezXIAaW9mkpqPWJWgfOE_uqjava
Connections
/Streams
的資源分配與釋放
工做流程的概述git
當咱們用OkHttpClient.newCall(request)
進行execute/enenqueue
時,實際是將請求Call
放到了Dispatcher
中,okhttp使用Dispatcher進行線程分發,它有兩種方法,一個是普通的同步單線程;另外一種是使用了隊列進行併發任務的分發(Dispatch)與回調,咱們下面主要分析第二種,也就是隊列這種狀況,這也是okhttp可以競爭過其它庫的核心功能之一;
github
通過上一步的分配,咱們如今須要進行鏈接了。咱們目前有封裝好的Request,而進行HTTP鏈接須要進行Socket握手,Socket握手的前提是根據域名或代理肯定Socket的ip與端口。這個環節主要講了http的握手過程與鏈接池的管理,分析的對象主要是StreamAllocation
緩存