異步概念及使用場景


  首先,什么叫異步,異步與同步相對,異步就是主線程遇見了特別費時間的任務A,就把A交給了子線程,讓子線程完成,而主線程在把任務A交給子線程后繼續執行之后的任務B,當子線程完成主線程交給他的任務A后,給主線程返回一個結果,主線程就先停下手中的任務B,將A任務徹底完成,然后再繼續B任務。異步大概流程就是這樣,網上有許多例子都舉得比較生動,所以這里就不說了。同步是什么,同步就是無論遇見什么任務都是他執行,而且無論多長時間他都會等待當前任務執行完成后才會執行下一個任務。

下面就對同步與異步優劣的比較,我上網找了找,發現這位老哥寫的挺好(https://blog.csdn.net/qq_21033663/article/details/51564786),大致內容如下:

首先是異步的使用場景:

1、不涉及共享資源,或對共享資源只讀,即非互斥操作

2、沒有時序上的嚴格關系

3、不需要原子操作,或可以通過其他方式控制原子性

4、常用於IO操作等耗時操作,因為比較影響客戶體驗和使用性能

5、不影響主線程邏輯

稍微總結一下,1.對共享資源進行非互斥操作,2.在時間順序上沒有嚴格要求,3.不懂,4.常用與IO操作,5.不能影響主線程進行

然后是同步異步各自優勢:

同步的好處:

1、同步流程對結果處理通常更為簡單,可以就近處理。

2、同步流程對結果的處理始終和前文保持在一個上下文內。

3、同步流程可以很容易捕獲、處理異常。

4、同步流程是最天然的控制過程順序執行的方式。

異步的好處:

1、異步流程可以立即給調用方返回初步的結果。

2、異步流程可以延遲給調用方最終的結果數據,在此期間可以做更多額外的工作,例如結果記錄等等。

3、異步流程在執行的過程中,可以釋放占用的線程等資源,避免阻塞,等到結果產生再重新獲取線程處理。

4、異步流程可以等多次調用的結果出來后,再統一返回一次結果集合,提高響應效率。

以上是那位老哥寫的,我使用異步並不是很多,我也總結了一下同異步的優點:

同步:可以避免死鎖,避免多線程同時進行對某一共享資源進行互斥操作。

異步:可以同時處理多個任務,提高了效率。


免責聲明!

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



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