RpcClient 客戶端中異步,同步的概念不是很理解
從代碼上看,異步發(fā)送數(shù)據(jù)時 新創(chuàng)建了當前類,同步發(fā)送直接用當前類
是不是可以這樣理解?
同步發(fā)送 用同一個socket 發(fā)送
異步發(fā)送 用不同socket 發(fā)送
RpcClient 里面的異步的意思是發(fā)送請求后不直接阻塞讀取。等需要結(jié)果時在讀取結(jié)果。
正常批量請求時過程類似這樣
發(fā)起請求A,等待A的結(jié)果(耗時500毫秒)
發(fā)起請求B,等待B的結(jié)果(耗時500毫秒)
發(fā)起請求C,等待C的結(jié)果(耗時500毫秒)
三個請求串行,總耗時1500毫秒
RpcClient中異步批量請求流程類似這樣
發(fā)起請求A,發(fā)起請求B,發(fā)起請求C
等待結(jié)果
得到結(jié)果A,得到結(jié)果B,得到結(jié)果C
三個請求并行在服務端處理,總耗時500毫秒
這樣異步并行處理可以減少客戶端等待時間,
例如用戶主頁需要拉取用戶信息、好友信息、日志數(shù)據(jù)、其他數(shù)據(jù),
這些數(shù)據(jù)如果按照傳統(tǒng)php做法就是串行的去獲取,耗時會很長。
如果像RpcClient那樣異步批量處理,則會大大縮短頁面響應時間。
說白了RpcClient的異步處理就是利用分布式并行處理的方式減少響應時間。