並行和併發的區別

2021-10-09 15:27:34 字數 817 閱讀 6441

併發

併發(concurrent),在作業系統中,是指乙個時間段中有幾個程式都處於已啟動執行到執行完畢之間,且這幾個程式都是在同乙個處理機上執行。

併發不是真正意義上的「同時進行」,只是cpu把乙個時間段劃分成幾個時間片段(時間區間),然後在這幾個時間區間之間來回切換,由於cpu處理的速度非常快,只要時間間隔處理得當,即可讓使用者感覺是多個應用程式同時在進行。如:打遊戲和聽**兩件事情在同乙個時間段內都是在同一臺電腦上完成了從開始到結束的動作。那麼,就可以說聽**和打遊戲是併發的。

並行

並行(parallel),當系統有乙個以上cpu時,當乙個cpu執行乙個程序時,另乙個cpu可以執行另乙個程序,兩個程序互不搶占cpu資源,可以同時進行,這種方式我們稱之為並行(parallel)。

其實決定並行的因素不是cpu的數量,而是cpu的核心數量,比如乙個cpu多個核也可以並行。

如下圖所示:

所以,併發是在一段時間內巨集觀上多個程式同時執行,並行是在某一時刻,真正有多個程式在執行。

並行和併發的區別:

併發,指的是多個事情,在同一時間段內同時發生了。

並行,指的是多個事情,在同一時間點上同時發生了。

併發的多個任務之間是互相搶占資源的。

並行的多個任務之間是不互相搶占資源的、

只有在多cpu或者乙個cpu多核的情況中,才會發生並行。否則,看似同時發生的事情,其實都是併發執行的。

併發和並行區別?

做併發程式設計之前,必須首先理解什麼是併發,什麼是並行,什麼是併發程式設計,什麼是並行程式設計。併發 concurrency 和並行 parallellism 是 解釋一 並行是指兩個或者多個事件在同一時刻發生 而併發是指兩個或多個事件在同一時間間隔發生。解釋二 並行是在不同實體上的多個事件,併發是...

併發和並行的區別

併發就是一心二用 多用 比如你一邊聽老師講課,一邊低頭看課桌下韓寒的 這兩件事你在同時做,而且這兩件事並不一定需要相關。而並行就是兵分幾路幹同乙個事情。比如別人看 只能一行一行的看,而你能一目十行,這就是並行。關於併發和並行的區別,go語言有乙個非常好的教材,叫做 併發不是並行 它以go語言為例,並...

併發和並行的區別

在github上看到一幅圖,問如何向五歲的小孩講解併發和並行。然後有人以這幅圖做答 用咖啡機的比喻來形容併發和並行,從中最直接的體會是,併發是有狀態的,某一線程同時執行乙個任務,完了才能進行到下乙個,而並行是無狀態的。併發與並行是兩個既相似而又不相同的概念 併發性,又稱共行性,是指能處理多個同時性活...