1. 程式與執行緒的區別
程式是計算機分配資源的最小單位,執行緒是 cpu 排程的最小單位
- 執行緒不能看做獨立應用,而程式可以
- 程式由獨立的地址空間,多個程式之間互不影響,執行緒只是程式的不同執行路徑
- 執行緒沒有獨立的地址空間,多程式的程式比多執行緒的更為健壯
- 程式切換比執行緒切換的開銷大
1.1 程式
- 所有與程式相關的資源,都被記錄在程式 PCB 中
- 程式是搶佔處理機的排程單位
- 執行緒屬於某個程式,共享其資源
1.2 執行緒
- 執行緒由 TCB、程式計數器和堆疊暫存器組成
1.3 程式與執行緒的關係
2. Java 程式和執行緒的關係
- Java 對作業系統提供的程式和執行緒進行封裝
- 執行一個程式會產生一個程式,這個程式中包含一個執行緒
- 每個程式對應一個 JVM 例項,多個執行緒共享 JVM 中的堆
- Java 採用單執行緒程式設計模型,程式會主動建立一個主執行緒
- 主執行緒可以建立子執行緒,原則上主執行緒的完成在子執行緒之後