1. 程式人生 > >執行緒同步與非同步的最簡單圖解

執行緒同步與非同步的最簡單圖解

前提

執行緒的同步和非同步是針對多核CPU而言的,沒有多核CPU就沒有非同步的概念(此時全是同步的)。

下面以四核CPU為例子,用圖解的方式看同步和非同步的區別:

同步:

這裡寫圖片描述
可以看出,所謂同步,就是每次只有一個執行緒能去執行,即使有多的計算資源(在這裡指多餘的CPU)也不會去用,一次只有一個執行緒去用,可以看作是豪華型執行過程。注意,此時因為只有一個執行緒A可以執行,所以它可以任意選擇某個CPU。其它的執行緒只有等這個執行緒A執行完畢後才可以繼續進入執行。

非同步:

這裡寫圖片描述

可以看出,所謂的非同步就是一個CPU對應了一個執行緒,一次可以執行更多的執行緒(開口更大)。當然哪個執行緒對應哪個CPU的順序沒要求,一批一批的執行,可以看作是高效型執行過程

以上是我個人對於執行緒同步和非同步的理解,如果有不當的地方歡迎指出~