簡單理解
併發:乙個處理器可以同時處理多個任務。這是邏輯上的同時發生。
並行:多個處理器同時處理多個不同的任務。這是物理上的同時發生。
有乙個清晰地比喻:
併發:乙個人同時吃三個蘋果。並行:三個人同時吃三個蘋果。
深入理解:
指同一時刻只能夠執行一條指令,但是多條指令被快速的進行切換,給人造成了它們同時執行的感覺。但在微觀來說,並不同同時進行的,只是劃分時間段,分別進行執行。
在同一時刻,有多條指令在多個處理器上同時執行。
注意
併發的多個任務之間是互相搶占資源的
並行的多個任務之間是不互相搶占資源的。
只有在多cpu或者乙個cpu多核的情況中,才會發生並行。
否則,看似同時發生的事情,其實都是併發執行的。
併發和並行區別?
做併發程式設計之前,必須首先理解什麼是併發,什麼是並行,什麼是併發程式設計,什麼是並行程式設計。併發 concurrency 和並行 parallellism 是 解釋一 並行是指兩個或者多個事件在同一時刻發生 而併發是指兩個或多個事件在同一時間間隔發生。解釋二 並行是在不同實體上的多個事件,併發是...
併發和並行的區別
併發就是一心二用 多用 比如你一邊聽老師講課,一邊低頭看課桌下韓寒的 這兩件事你在同時做,而且這兩件事並不一定需要相關。而並行就是兵分幾路幹同乙個事情。比如別人看 只能一行一行的看,而你能一目十行,這就是並行。關於併發和並行的區別,go語言有乙個非常好的教材,叫做 併發不是並行 它以go語言為例,並...
併發和並行的區別
在github上看到一幅圖,問如何向五歲的小孩講解併發和並行。然後有人以這幅圖做答 用咖啡機的比喻來形容併發和並行,從中最直接的體會是,併發是有狀態的,某一線程同時執行乙個任務,完了才能進行到下乙個,而並行是無狀態的。併發與並行是兩個既相似而又不相同的概念 併發性,又稱共行性,是指能處理多個同時性活...