併發與並行的區別

所有的併發處理都有排隊等候,喚醒,執行至少三個這樣的步驟.所以併發肯定是宏觀概念,在微觀上他們都是序列被處理的,只不過資源不會在某一個上被阻塞(一般是通過時間片輪轉),所以在宏觀上看多個幾乎同時到達的請求同時在被處理。如果是同一時刻到達的請求也會根據優先級的不同,而先後進入隊列排隊等候執行。

-------------------------------------------------------------

併發與並行是兩個既相似而又不相同的概念:併發性,又稱共行性,是指能處理多個同時性活動的能力;並行是指同時發生的兩個併發事件,具有併發的含義,而併發則不一定並行,也亦是說併發事件之間不一定要同一時刻發生。

-------------------------------------------------------------

併發和並行的區別僅僅在發生時刻的不同嗎?
舉個例子理解一下,如:
假設有A、B 兩個事件
並行:
如果A和B都在15:30同時發生,A 的運行時間爲 5 分鐘,B 的運行時間爲 8 分鐘
在前5分鐘是並行,也包括併發,因爲他們都是在同一時刻發生的
併發:
如果A在15:30發生,運行3分鐘後,B事件發生,在以後的5分鐘時間裏,A和B 是併發的

-------------------------------------------------------------

併發,是在同一個cpu上同時(不是真正的同時,而是看來是同時,因爲cpu要在多個程序間切換)運行多個程序。
並行,是每個cpu運行一個程序。
打個比方,併發,就像一個人(cpu)喂2個孩子(程序),輪換着每人喂一口,表面上兩個孩子都在吃飯。
並行,就是2個人喂2個孩子,兩個孩子也同時在吃飯。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章