一張圖瞭解併發與並行

一張圖瞭解併發與並行

併發與並行

併發

併發(Concurrency)。當有多個線程在操作時,如果系統只有一個CPU,則它根本不可能真正同時進行一個以上的線程,它只能把CPU運行時間劃分成若干個時間段,再將時間段分配給各個線程執行,在一個時間段的線程代碼運行時,其它線程處於掛起狀。

並行

並行(Parallellism),當系統有一個以上CPU時,一個CPU執行一個線程時,另一個CPU可以執行另一個線程,兩個線程互不搶佔CPU資源,可以同時進行,這種方式我們稱之爲並行。

圖片詳解

一個最簡單的例子,上半部分,有兩條隊伍,一個咖啡銷售人員,工作人員先給第一個隊伍出售幾份之後轉而給第二條隊伍出售幾份,如此來回切換,從餐廳外面觀看,兩條隊伍都在前進中,這就是併發。
而下半部分圖片,也是兩條隊伍,但是有兩個咖啡工作人員,各自處理着自己對應的那條隊伍,這就是並行。

總結

並行是指兩個或者多個事件在同一時刻發生。
併發是指兩個或多個事件在同一時間間隔內發生。
並行的核心是CPU數量,當CPU數量大於1個時纔有並行的可能,如果只有一個處理器,沒有並行的概念。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章