同步和異步


同步:

同步的思想是:所有的操作都做完,才返回給用戶。這樣用戶在線等待的時間太長,給用戶一種卡死了的感覺(就是系統遷移中,點擊了遷移,界面就不動了,但是程序還在執行,卡死了的感覺)。這種情況下,用戶不能關閉界面,如果關閉了,即遷移程序就中斷了。

異步:

將用戶請求放入消息隊列,並反饋給用戶,系統遷移程序已經啟動,你可以關閉瀏覽器了。然后程序再慢慢地去寫入數據庫去。這就是異步。但是用戶沒有卡死的感覺,會告訴你,你的請求系統已經響應了。你可以關閉界面了。

 

同步,是所有的操作都做完,才返回給用戶結果。即寫完數據庫之后,在相應用戶,用戶體驗不好。

異步,不用等所有操作等做完,就相應用戶請求。即先相應用戶請求,然后慢慢去寫數據庫,用戶體驗較好。

 

異步操作例子:

為了避免短時間大量的數據庫操作,就使用緩存機制,也就是消息隊列。先將數據放入消息隊列,然后再慢慢寫入數據庫。

引入消息隊列機制,雖然可以保證用戶請求的快速響應,但是並沒有使得我數據遷移的時間變短(即80萬條數據寫入mysql需要1個小時,用了redis之后,還是需要1個小時,只是保證用戶的請求的快速響應。用戶輸入完http url請求之后,就可以把瀏覽器關閉了,干別的去了。如果不用redis,瀏覽器不能關閉)。

 

同步也有其他用處:

比如銀行轉賬功能,用的是同步操作

同步和異步的區別是一個需要等待,一個不需要等待,在部分情況下,我們的項目開發中都會有限選擇不需要等待的異步交互方式。

但是,銀行的轉賬系統,對數據庫的保存操作等等,都會使用同步操作,其余情況優先使用異步交互。


免責聲明!

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



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