併發和並行的區別

2021-10-08 04:17:26 字數 529 閱讀 7686

併發

同一時間有兩個需求,需求a和b分配到了你的手上,而且這兩個需求都很急,你為這兩個需求分別開了兩個分支a和b,一會兒需求a催你改**,你切到了a的分支,一會兒b催你改**,你又切到了需求b,你是乙個人但是你具有處理併發事件的能力,在兩個需求之間來回穿梭。

並行

同一事件有兩個需求,同樣也很急,但是這個時候你不是乙個人在戰鬥了,你有了新同事;需求a分配給了你,需求b分配了你的新同事,那麼你就不用再去關心需求b做了什麼,兩個人分別處理各自在自己的分支上做需求。

併發(concurrency)是說程序b的開始時間是在程序a的開始時間與結束時間之間,我們就說a和b是併發的。

並行(parallel execution)是併發的真子集,指同一時間兩個程序執行在不同的機器上或者同乙個機器不同的核心上。

大白話總結:

併發是乙個人做多件事,來回切換。

並行是多個人做多件事,互不干涉。

併發和並行區別?

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

併發和並行的區別

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

併發和並行的區別

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