平行(Parallelism)與併行(Concurrency)的差別如下。
- 多個任務分配到一個CPU核心,在取得的CPU時間片段中交互執行,稱之為併行(Concurrency)。
- 一個任務可被分成多個子任務並分配到不同的CPU核心同時執行,稱之為平行(Parallelism)。
Concurrency是指多個任務(tasks)同時處理。而併行的相反則為序列化處理,也就是要等一件任務完成才能開始執行另外一件任務。
Parallelism是指一個任務分拆為數個子任務來同時執行。
平行和併行是分別獨立的概念,彼此並沒有依賴關係,有平行不一定有併行,反之亦然。
下面這張圖說明了Parallelism與Concurrency的不同。
而下面這張圖代表系統同時支援平行與併行(我自己的理解:p)。
沒有留言:
張貼留言