非同步兩者比較
我們可以將同步看成是單線的執行,即要麼執行成功,要麼執行失敗,反正就是要返回乙個結果,在沒有得到這個結果之前什麼都不幹,就傻傻的等著。任務提交後不向系統交出控制權,持續等待。
1、同步流程對結果處理通常更為簡單,可以就近處理。2、同步流程對結果的處理始終和前文保持在乙個上下文內。
3、同步流程可以很容易捕獲、處理異常。
4、同步流程是最天然的控制過程順序執行的方式。
比如銀行的轉賬系統,對資料庫的儲存操作等等,都會使用同步互動操作,其餘情況都優先使用非同步互動。
非同步則是當你的任務提交了之後,不用管任務的結果是什麼,可以繼續執行別的任務。任務提交後將控制權交予系統,系統可以進行其他任務的執行。
1、非同步流程可以立即給呼叫方返回初步的結果。2、非同步流程可以延遲給呼叫方最終的結果資料,在此期間可以做更多額外的工作,例如結果記錄等等。
3、非同步流程在執行的過程中,可以釋放占用的執行緒等資源,避免阻塞,等到結果產生再重新獲取執行緒處理。
4、非同步流程可以等多次呼叫的結果出來後,再統一返回一次結果集合,提高響應效率
1、不涉及共享資源,或對共享資源唯讀,即非互斥操作2、沒有時序上的嚴格關係
3、不需要原子操作,或可以通過其他方式控制原子性
4、常用於io操作等耗時操作,因為比較影響客戶體驗和使用效能
5、不影響主線程邏輯
1、同步的執行效率會比較低,耗費時間,但有利於我們對流程進行控制,避免很多不可掌控的意外情況;2、非同步的執行效率高,節省時間,但是會占用更多的資源,也不利於我們對程序進行控制
同步和非同步,區別
同步 非同步 將使用者請求放入訊息佇列,並反饋給使用者,系統遷移程式已經啟動,你可以關閉瀏覽器了。然後程式再慢慢地去寫入資料庫去。這就是非同步。但是使用者沒有卡死的感覺,會告訴你,你的請求系統已經響應了。你可以關閉介面了。同步,是所有的操作都做完,才返回給使用者結果。即寫完資料庫之後,在相應使用者,...
同步和非同步的區別
同步 提交後等待伺服器的響應,接收伺服器返回的資料後再執行下面的 非同步 與上面相反,提交後繼續執行下面的 而在後台繼續監聽,伺服器響應後有程式做相應處理,非同步的操作好處是不必等待伺服器而可以繼續在客戶端做其它事情。同步就是請求傳送後必須等到響應 伺服器傳送回來的訊息 才取執行下面的語句 非同步就...
同步和非同步的區別
通俗的來講 舉個例子 普通b s模式 同步 ajax技術 非同步 同步 提交請求 等待伺服器處理 處理完畢返回 這個期間客戶端瀏覽器不能幹任何事 非同步 請求通過事件觸發 伺服器處理 這是瀏覽器仍然可以作其他事情 處理完畢 同步就是你叫我去吃飯,我聽到了就和你去吃飯 如果沒有聽到,你就不停的叫,直到...