並行和併發的區別與聯絡

SaiW-n_n-發表於2017-05-17


你吃飯吃到一半,電話來了,你一直到吃完了以後才去接,這就說明你不支援併發也不支援並行。
你吃飯吃到一半,電話來了,你停了下來接了電話,接完後繼續吃飯,這說明你支援併發。
你吃飯吃到一半,電話來了,你一邊打電話一邊吃飯,這說明你支援並行。
併發的關鍵是你有處理多個任務的能力,不一定要同時。
並行的關鍵是你有同時處理多個任務的能力。
所以我認為它們最關鍵的點就是:是否是『同時』。



做併發程式設計之前,必須首先理解什麼是併發,什麼是並行,什麼是併發程式設計,什麼是並行程式設計。

併發(concurrency)和並行(parallellism)是:

解釋一:並行是指兩個或者多個事件在同一時刻發生;而併發是指兩個或多個事件在同一時間間隔發生。
解釋二:並行是在不同實體上的多個事件,併發是在同一實體上的多個事件。
解釋三:在一臺處理器上“同時”處理多個任務,在多臺處理器上同時處理多個任務。如hadoop分散式叢集
所以併發程式設計的目標是充分的利用處理器的每一個核,以達到最高的處理效能。


參考:

https://www.zhihu.com/question/33515481/answer/58849148

https://zhidao.baidu.com/question/1821773573879676988.html


相關文章