首頁  >  文章  >  Java  >  java同步與異步的​​差別是什麼?

java同步與異步的​​差別是什麼?

青灯夜游
青灯夜游原創
2019-12-26 16:57:086338瀏覽

java同步與異步的​​差別是什麼?

概念:

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

2、非同步:將使用者要求放入訊息佇列,並回饋給用戶,系統遷移程式已經啟動,你可以關閉瀏覽器了。然後程式再慢慢地去寫入資料庫去。這就是異步。但是用戶沒有卡死的感覺,會告訴你,你的請求系統已經回應了。你可以關閉介面了。

【推薦學習:Java影片教學

同步,就是所有的操作都做完,才回傳給使用者結果;也就是寫完資料庫之後,在對應用戶,用戶體驗不好。

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

同步非同步操作範例:

1、同步:

例如銀行的轉帳系統,對資料庫的儲存操作等等都是使用同步交互操作。

2、非同步:

為了避免短時間大量的資料庫操作,就使用快取機制,也就是訊息佇列。先將資料放入訊息佇列,然後再慢慢寫入資料庫。

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

以上是java同步與異步的​​差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn