1. 程式人生 > >二、併發相關術語概念

二、併發相關術語概念

學習內容

併發和並行

同步和非同步

臨界區

阻塞和非阻塞

死鎖、飢餓、活鎖

Amdahl定律、Gustafson定律、Sun-Ni 定律


併發和並行

解釋一:

並行是指兩個或者多個事件在同一時刻發生;而併發是指兩個或多個事件在同一時間間隔發生。

解釋二:

並行是在不同實體上的多個事件,併發是在同一實體上的多個事件。

 

同步和非同步

同步和非同步通常用來形容一次方法呼叫。同步方法呼叫一開始,呼叫者必須等待被呼叫的方法結束後,呼叫者後面的程式碼才能執行。而非同步呼叫,指的是,呼叫者不用管被呼叫方法是否完成,都會繼續執行後面的程式碼,當被呼叫的方法完成後會通知呼叫者。

 

阻塞和非阻塞

阻塞和非阻塞通常用來形容多執行緒間的相互影響,比如一個執行緒佔有了臨界區資源,那麼其他執行緒需要這個資源就必須進行等待該資源的釋放,會導致等待的執行緒掛起,這種情況就是阻塞,而非阻塞就恰好相反,它強調沒有一個執行緒可以阻塞其他執行緒,所有的執行緒都會嘗試地往前執行。

 

臨界區

臨界區用來表示一種公共資源或者說是共享資料,可以被多個執行緒使用。但是每個執行緒使用時,一旦臨界區資源被一個執行緒佔有,那麼其他執行緒必須等待。

 

Amdahl定律、Gustafson定律、Sun-Ni 定律

Amdahl 定律:

在計算機體系架構設計過程中,某個部件的優化對整個架構的優化和改善是有上限的。

Gustafson 定律:

假設隨著處理器個數的增加,並行與序列的計算總量也是可以增加的。Gustafson定律認為加速係數幾乎跟處理器個數成正比,如果現實情況符合Gustafson定律的假設前提的話,那麼軟體的效能將可以隨著處理個數的增加而增加。

Sun-Ni 定律:

充分利用儲存空間等計算資源,儘量增大問題規模以產生更好/更精確的解。