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


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



並行與並發的區別

1、並行指多個事件在同一個時刻發生;並發指在某時刻只有一個事件在發生,某個時間段內由於 CPU 交替執行,可以發生多個事件。

2、並行沒有對 CPU 資源的搶占;並發執行的線程需要對 CPU 資源進行搶占。

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

 

Java 中的多線程

通過 JDK 中的 java.lang.Thread 可以實現多線程。

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

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

不管多線程是並行還是並發,都是為了提高程序的性能。

 

 來一道刷了進BAT的面試題?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM