並行是什麼意思?與併發的區別是什麼?

並行:指兩個或兩個以上事件或活動在同一時刻發生。如多個任務在多個 CPU 或 CPU 的多個核上同時執行,不存在 CPU 資源的競爭、等待行爲。java

圖片

 

並行與併發的區別多線程

一、並行指多個事件在同一個時刻發生;併發指在某時刻只有一個事件在發生,某個時間段內因爲 CPU 交替執行,能夠發生多個事件。併發

二、並行沒有對 CPU 資源的搶佔;併發執行的線程須要對 CPU 資源進行搶佔。ide

三、並行執行的線程之間不存在切換;併發操做系統會根據任務調度系統給線程分配線程的 CPU 執行時間,線程的執行會進行切換。性能

 

Java 中的多線程操作系統

經過 JDK 中的 java.lang.Thread 能夠實現多線程。線程

Java 中多線程運行的程序多是併發也多是並行,取決於操做系統對線程的調度和計算機硬件資源( CPU 的個數和 CPU 的核數)。blog

CPU 資源比較充足時,多線程被分配到不一樣的 CPU 資源上,即並行;CPU 資源比較緊缺時,多線程可能被分配到同個 CPU 的某個核上去執行,即併發。事件

無論多線程是並行仍是併發,都是爲了提升程序的性能。圖片

相關文章
相關標籤/搜索