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


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

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

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

使用者用於調用WEB服務的通信選擇:同步或異步。
使用者可以同步或異步實現服務調用。從使用者的觀點來看,這兩種方式的不同之處在於:
同步——使用者通過單個線程調用服務;該線程發送請求,在服務運行時阻塞,並且等待響應。
異步——使用者通過兩個線程調用服務;一個線程發送請求,而另一個單獨的線程接收響應。
術語同步 和異步 經常與順序 和並發 混淆了。后面的這兩個術語與執行單獨的任務必須遵循的順序有關,而同步和異步 與線程執行單個任務(如調用單個服務)的方式有關。理解同步和異步調用之間的不同的一種很好的方法是考慮崩潰恢復的后果:
同步——如果使用者在服務運行的過程中阻塞時崩潰了,當它重新啟動時,將無法重新連接到正在進行的調用,所以響應丟失了。使用者必須重復調用過程,並且期望這次不會崩潰。
異步——如果使用者在發送了請求之后等待響應時崩潰了,當它重新啟動時,可以繼續等待響應,所以響應不會丟失。
崩潰恢復不是同步和異步調用之間的唯一不同,但是如果您嘗試確定某個調用采用哪一種方式,請考慮每一種調用如何處理崩潰恢復,這通常可以給您一個很好的答案.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
在 Java Web 開發中使用 Ajax 時,重要的是完整理解同步 和異步 通信模型的區別(請參閱 參考資料)。對異步通信模型支持的缺乏,會對客戶端開發、與 Web 框架的集成、標記庫的使用、IDE 的使用以及線程的行為有影響。

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM