1、線程和進程
(推薦教程:java入門教程)
(1) 進程
進程是系統(tǒng)進行資源分配和調(diào)用的獨立單位。每一個進程都有它自己的內(nèi)存空間和系統(tǒng)資源;
(2) 線程
線程:進程的執(zhí)行單元,執(zhí)行路徑
單線程:一個應(yīng)用程序只有一條執(zhí)行路徑
多線程:一個應(yīng)用程序有多條執(zhí)行路徑
多進程的意義?—— 提高CPU的使用率
2、并行和并發(fā)
并行是物理上同時發(fā)生,指在某一個時間點同時運行多個程序;
并發(fā)是邏輯上同時發(fā)生,指在某一個時間段內(nèi)同時運行多個程序。
(視頻教程推薦:java課程)
3、Java程序運行原理和JVM的啟動是否是多線程的?
Java程序的運行原理:
由java命令啟動JVM,JVM啟動就相當(dāng)于啟動了一個進程。接著由該進程創(chuàng)建了一個主線程去調(diào)用main方法。
JVM虛擬機的啟動是單線程的還是多線程的?
垃圾回收線程也要先啟動,否則很容易會出現(xiàn)內(nèi)存溢出。
JVM啟動至少啟動了垃圾回收線程和主線程,所以是多線程的。