多執行緒 同步和非同步的優缺點比較

2021-09-12 08:42:08 字數 589 閱讀 1742

非同步的使用場景:

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

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

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

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

5、不影響主線程邏輯

同步的使用場景:不使用非同步的時候

同步的好處:

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

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

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

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

非同步的好處:

1、非同步流程可以立即給呼叫方返回初步的結果。

2、非同步流程可以延遲給呼叫方最終的結果資料,在此期間可以做更多額外的工作,例如結果記錄等等。

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

4、非同步流程可以等多次呼叫的結果出來後,再統一返回一次結果集合,提高響應效率。

單執行緒和多執行緒的優缺點

壞處 增加了排程和管理的開銷,帶來了一些不確定性,需要複雜的同步機制,避免死鎖等等。好處 一定程度上提高響應速度,在多核的情況下還是更能充分利用cpu資源的。如果執行緒出現死鎖,唯一能證明的就是應用程式有問題,這並不是執行緒的缺點。執行緒相對於程序的優點 1 開銷小 2 資源共享性好。執行緒相對於程...

同步 非同步 多執行緒

1 首先明確一點,對於單核cpu,任意乙個時刻只有乙個執行緒在執行。那麼既然這樣,多執行緒還有什麼意義呢?舉例來說,現在只有乙個人,要做好幾個任務。單執行緒就是,任務乙個乙個地做,必須做完乙個任務後,再去做另乙個任務。多執行緒就是一會做這個任務,一會做那個任務,每個任務做一會,不停的切換。顯然,最後...

同步 非同步 多執行緒

1 首先明確一點,對於單核cpu,任意乙個時刻只有乙個執行緒在執行。那麼既然這樣,多執行緒還有什麼意義呢?舉例來說,現在只有乙個人,要做好幾個任務。單執行緒就是,任務乙個乙個地做,必須做完乙個任務後,再去做另乙個任務。多執行緒就是一會做這個任務,一會做那個任務,每個任務做一會,不停的切換。顯然,最後...