IOS同步請求和異步請求的區別

同步請求和異步請求的區別
 

先解釋一下同步和異步的概念

同步是指:發送方發出數據後,等接收方發回響應以後才發下一個數據包的通訊方式。  
異步是指:發送方發出數據後,不等接收方發回響應,接着發送下個數據包的通訊方式。

 

同步通信方式與異步通信的概念

同步通信方式要求通信雙方以相同的時鐘頻率進行,而且準確協調,通過共享一個單個時鐘或定時脈衝源保證發送方和接收方的準確同步,效率較高;
異步通信方式不要求雙方同步,收發方可採用各自的時鐘源,雙方遵循異步的通信協議,以字符爲數據傳輸單位,發送方傳送字符的時間間隔不確定,發送效率比同步傳送效率低。

 

使用者用於調用WEB服務的通信選擇:同步或異步。

使用者可以同步或異步實現服務調用。從使用者的觀點來看,這兩種方式的不同之處在於:

  • 同步——使用者通過單個線程調用服務;該線程發送請求,在服務運行時阻塞,並且等待響應。
  • 異步——使用者通過兩個線程調用服務;一個線程發送請求,而另一個單獨的線程接收響應。

術語同步異步 經常與順序併發 混淆了。後面的這兩個術語與執行單獨的任務必須遵循的順序有關,而同步異步 與線程執行單個任務(如調用單個服務)的方式有關。理解同步和異步調用之間的不同的一種很好的方法是考慮崩潰恢復的後果:

  • 同步——如果使用者在服務運行的過程中阻塞時崩潰了,當它重新啓動時,將無法重新連接到正在進行的調用,所以響應丟失了。使用者必須重複調用過程,並且期望這次不會崩潰。
  • 異步——如果使用者在發送了請求之後等待響應時崩潰了,當它重新啓動時,可以繼續等待響應,所以響應不會丟失。

崩潰恢復不是同步和異步調用之間的唯一不同,但是如果您嘗試確定某個調用採用哪一種方式,請考慮每一種調用如何處理崩潰恢復,這通常可以給您一個很好的答案.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

在 Java Web 開發中使用 Ajax 時,重要的是完整理解同步異步 通信模型的區別(請參閱 參考資料)。對異步通信模型支持的缺乏,會對客戶端開發、與 Web 框架的集成、標記庫的使用、IDE 的使用以及線程的行爲有影響。

 

在同步請求/響應通信模型中,總是瀏覽器(與 Web 服務器、應用服務器或 Web 應用程序相對)發起請求(通過 Web 用戶)。接着,Web 服務器、應用服務器或 Web 應用程序響應進入的請求。在處理同步請求/響應對期間,用戶不能繼續使用瀏覽器。

 

在異步請求/響應通信模型中,瀏覽器(通過 Web 用戶)到 Web 服務器、應用服務器或 Web 應用程序的通信(以及反過來)是解耦的。在異步請求/響應對的處理中,Web 用戶在當前異步請求被處理時還可以繼續使用瀏覽器。一旦異步請求處理完成,異步響應就被通信(從 Web 服務器、應用服務器或 Web 應用程序)回客戶機頁面。典型情況下,在這個過程中,調用對 Web 用戶沒有影響;他們不需要等候響應。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章