同步和非同步的區別

2021-09-06 05:59:37 字數 1734 閱讀 1773

舉個例子:普通b/s模式(同步)ajax技術(非同步)

同步:提交請求->等待伺服器處理->處理完畢返回 這個期間客戶端瀏覽器不能幹任何事

非同步: 請求通過事件觸發->伺服器處理(這是瀏覽器仍然可以作其他事情)->處理完畢

同步就是你叫我去吃飯,我聽到了就和你去吃飯;如果沒有聽到,你就不停的叫,直到我告訴你聽到了,才一起去吃飯。

非同步就是你叫我,然後自己去吃飯,我得到訊息後可能立即走,也可能等到下班才去吃飯。

所以,要我請你吃飯就用同步的方法,要請我吃飯就用非同步的方法,這樣你可以省錢。

文章出自: 

同步執行模式: 

所謂同步執行模式,是指語句在同步執行模式下,將始終保持對程式流的控制,直至 程式結束。如查詢操作,客戶機上的應用程式在向伺服器發出查詢操作的指令後,將 一直等待伺服器將查詢結果返回客戶機端,然後才繼續進行下一步操作。 

眾所周知,應用程式要從乙個大表中刪除所有的記錄將是非常耗時的,如果應用程式 採用的是單執行緒(thread)同步執行方式,某次刪除工作很可能耽誤其他重要工作的完 成。如果應用程式等待的是遠端任務,那麼遠端伺服器失敗或網路故障或一些無法預 知的情況都可能使應用程式無限期地等下去,這是同步執行最大的缺陷。 

但是同步執行模式可以簡化程式編制的複雜性。程式設計師可以不用過多地了解比較複雜 的odbc 2.0 api 的使用,而只需使用 odbc 的同步執行模式或使用資料控制項和資料庫物件變數來編寫應用程式,可以提高開發效率,但程式執行速度比不上非同步執行 模式的速度。 

非同步執行模式: 

所謂非同步執行模式,是指語句在非同步執行模式下,各語句執行結 束的順序與語句執行開始的順序並不一定相同。例如 查詢操作,客戶機上的應用程式在向伺服器發出了查 詢操作的指令後,將立刻執行查詢語句指令的下一條 語句,而不需要等到伺服器將查詢結果返回客戶機端。 非同步執行方式使應用程式能擺 脫單個任務的牽制,提高了靈活性和應用程式的執行 效率。但非同步執行模式也存在一些問題,如它增加了 程式設計的複雜性,特別是編寫互用性(interoperable)要求較高 的程式。 

在負荷很重的客戶/伺服器系 統中,適宜採用非同步執行模式。在這種環境下,時間 延遲頻繁且漫長,相比之下非同步執行的開銷微不足 道。但是,如果應用執行的環境比較複雜,則必須建 立一套完整的機制,周期性地檢查函式執行的狀態, 以決定下一步執行方案。進行週期的檢查可以有多種方法,如在 應用中設定計時器並處理wm_timer資訊等。 

雖然使用非同步執行模式在程式設計 序時十分複雜,但可以實現多工並行執行,使執行的效率大大提高。 

選擇並設定執行模式 在應用程式開發中選擇同步模式還是非同步模式,是乙個比 較複雜的層次。當查詢或對資料庫的修改相對簡單時,同步執行模式是一種 很好的選擇,它能夠在幾秒 或更少的時間內返回結果資料。另外,在應用程式獲 得結果集前不能繼續執行時,根本不必要使用非同步執 行模式。在複雜查詢情況下,特別是複雜的多行資料 庫的update 或delete 操作,可能需要很長的時間才能完成, 需採用非同步執行模式,讓使用者可以同時對程式的其他 部分進行操作。 

對於一般程式設計師來說,如果他對同步執行模式與非同步執行模式不了解, 他往往會在對伺服器發出乙個操作語句(查詢或讀取一條記錄等 操作)後,立該引用伺服器返回的執行結果,或者對該 結果進行下一步操作,這是很危險的。因為,在非同步 執行模式下,客戶機上的後續語句是在該操作語句發 出後接著執行的,但由於各種原因,伺服器不一定能 執行完該操作語句,並在後續語句執行前將結果返回 客戶機。因此,後續語句在引用前一操作語句的執行 結果時,往往會因為該執行結果並不存在而引用了錯 誤的值,造成系統錯誤或死鎖,所以在實際應用中應 根據具體情況慎重選擇執行模式。     

文章出自: 

同步和非同步,區別

同步 非同步 將使用者請求放入訊息佇列,並反饋給使用者,系統遷移程式已經啟動,你可以關閉瀏覽器了。然後程式再慢慢地去寫入資料庫去。這就是非同步。但是使用者沒有卡死的感覺,會告訴你,你的請求系統已經響應了。你可以關閉介面了。同步,是所有的操作都做完,才返回給使用者結果。即寫完資料庫之後,在相應使用者,...

同步和非同步的區別

同步 提交後等待伺服器的響應,接收伺服器返回的資料後再執行下面的 非同步 與上面相反,提交後繼續執行下面的 而在後台繼續監聽,伺服器響應後有程式做相應處理,非同步的操作好處是不必等待伺服器而可以繼續在客戶端做其它事情。同步就是請求傳送後必須等到響應 伺服器傳送回來的訊息 才取執行下面的語句 非同步就...

同步和非同步的區別

通俗的來講 舉個例子 普通b s模式 同步 ajax技術 非同步 同步 提交請求 等待伺服器處理 處理完畢返回 這個期間客戶端瀏覽器不能幹任何事 非同步 請求通過事件觸發 伺服器處理 這是瀏覽器仍然可以作其他事情 處理完畢 同步就是你叫我去吃飯,我聽到了就和你去吃飯 如果沒有聽到,你就不停的叫,直到...