異步執行和同步執行之間有什麼區別? 異步
當執行以下序列時:a> b> c> d>,若是在執行過程當中遇到失敗,例如: spa
a b c fail
而後咱們從頭開始: code
a b c d
這是同步的 同步
可是,若是執行相同的順序:a> b> c> d>,而且中間出現故障: 程序
a b c fail
...可是咱們沒有從頭開始,而是從故障點從新開始: 並行
c d
...這就是異步的。 co
您將「同步與並行vs系列」混爲一談。 同步意味着全部同時。 彼此相關的同步化意味着能夠串聯或以固定間隔進行。 在程序執行全部操做時,它會順序運行。 獲取字典...這就是爲何咱們有不甜的茶。 您喝茶或加糖茶。 字典
同步操做在返回到調用者以前先完成其工做。 工作
異步操做返回到調用方後會執行(大部分或所有)工做。
簡單來講:
同步
您正在排隊購買電影票。 在前面的每一個人都獲得一票以前,您沒法得到一票,排隊在您後面的人也是如此。
異步
您和許多其餘人一塊兒在餐廳中。 您點菜。 其餘人也能夠點餐,他們沒必要等待您的食物煮熟併爲您服務就能夠點菜。 在廚房,餐廳的工做人員正在不斷作飯,上菜並接受訂單。 人們將在煮熟後當即食用食物。
同步執行
個人老闆很忙。 他叫我寫代碼。 我告訴他:很好。 我開始了,他像禿鷹同樣看着我,站在個人身後,從個人肩膀上移開。 我就像「老兄,WTF:當我完成此操做時,爲何不去作點什麼?」
他說:「不,我在這裏等你完成。」 這是同步的。
異步執行
老闆告訴我去作,而不是在那兒等個人工做,而是去作其餘事情。 當我完成工做後,我只是向老闆報告,說:「我作完了!」 這是異步執行。
(請聽取個人建議:切勿與身後的老闆一塊兒工做。)