首先,什麼叫非同步,非同步與同步相對,非同步就是主線程遇見了特別費時間的任務a,就把a交給了子執行緒,讓子執行緒完成,而主線程在把任務a交給子執行緒後繼續執行之後的任務b,當子執行緒完成主線程交給他的任務a後,給主線程返回乙個結果,主線程就先停下手中的任務b,將a任務徹底完成,然後再繼續b任務。非同步大概流程就是這樣,網上有許多例子都舉得比較生動,所以這裡就不說了。同步是什麼,同步就是無論遇見什麼任務都是他執行,而且無論多長時間他都會等待當前任務執行完成後才會執行下乙個任務。
下面就對同步與非同步優劣的比較,我上網找了找,發現這位老哥寫的挺好(大致內容如下:
首先是非同步的使用場景:
1、不涉及共享資源,或對共享資源唯讀,即非互斥操作
2、沒有時序上的嚴格關係
3、不需要原子操作,或可以通過其他方式控制原子性
4、常用於io操作等耗時操作,因為比較影響客戶體驗和使用效能
5、不影響主線程邏輯
稍微總結一下,1.對共享資源進行非互斥操作,2.在時間順序上沒有嚴格要求,3.不懂,4.常用與io操作,5.不能影響主線程進行
然後是同步非同步各自優勢:
同步的好處:
1、同步流程對結果處理通常更為簡單,可以就近處理。
2、同步流程對結果的處理始終和前文保持在乙個上下文內。
3、同步流程可以很容易捕獲、處理異常。
4、同步流程是最天然的控制過程順序執行的方式。
非同步的好處:
1、非同步流程可以立即給呼叫方返回初步的結果。
2、非同步流程可以延遲給呼叫方最終的結果資料,在此期間可以做更多額外的工作,例如結果記錄等等。
3、非同步流程在執行的過程中,可以釋放占用的執行緒等資源,避免阻塞,等到結果產生再重新獲取執行緒處理。
4、非同步流程可以等多次呼叫的結果出來後,再統一返回一次結果集合,提高響應效率。
以上是那位老哥寫的,我使用非同步並不是很多,我也總結了一下同非同步的優點:
同步:可以避免死鎖,避免多執行緒同時進行對某一共享資源進行互斥操作。
非同步:可以同時處理多個任務,提高了效率。
Git使用場景 命令使用場景
通過個人使用git時候的遇到的使用場景,熟悉了解相關命令,也記錄一下場景的使用方法。所有場景均在ubuntu16.04 linux 作業系統下,其他作業系統有差異的地方自行查閱相關資料。安裝git sudo apt get install git設定及檢視git配置 user.name和user.e...
mongodb 使用場景和不使用場景
1.mongodb介紹 mongodb 名稱來自 humongous 是乙個可擴充套件的高效能,開源,模式自由,面向文件的資料庫。它使用c 編寫。mongodb特點 a.面向集合的儲存 適合儲存物件及json形式的資料。b.動態查詢 mongo支援豐富的查詢表達方式,查詢指令使用json形式的標記,...
mongodb 使用場景和不使用場景
mongodb 使用場景和不使用場景 2012 09 26 10 30 18 分類 linux 1.mongodb介紹 mongodb 名稱來自 humongous 是乙個可擴充套件的高效能,開源,模式自由,面向文件的資料庫。它使用c 編寫。mongodb特點 a.面向集合的儲存 適合儲存物件及js...