並行與併發區別舉個例子,若是有一條高速公路上面有4條車道,那麼最大的並行車輛就是4輛,此條高速公路同時並排行駛的車輛小於等於4輛的時候,車輛就能夠並行行駛,CPU也是這個原理,一個CPU至關於一條高速公路,核心數或者線程數就至關於能夠並排同行的車道,而多個CPU就至關於有多條高速公路。算法
當談到併發的時候必定要加一個時間單位,也就是描述單位時間內的併發量是多少?離開了時間單位實際上是沒有意義的,俗話說一心不能二用,這對計算機也同樣,原則上一個CPU只能分配給一個進程,以便運行這個進程。咱們一般使用的計算機中只有一個CPU,要讓它同時運行多個進程,就必須使用併發技術。實現併發技術至關複雜,最容易理解的就是「時間片輪轉進程調度算法」。併發指應用可以交替執行不一樣的任務,好比單CPU核心下執行多線程並不是是同時執行多個任務,若是你開2個線程執行,就是在幾乎不可能察覺到的速度不斷的去切換這2個任務,以達到」同時執行的效果「,其實真正意義上並非同時執行的,只是計算機的速度太快,咱們沒法察覺而已。編程
並行指應用可以同時執行不一樣的任務,好比吃飯的時候能夠看電視。這2件事情能夠同時執行。多線程
二者區別:一個是交替執行,一個是同時執行。併發
本篇爲學習併發編程而理解並行與併發含義,2020年03月20日 晚24:23 wangmo