程式與執行緒

不要必應發表於2019-09-09

1. 程式與執行緒的區別

程式是計算機分配資源的最小單位,執行緒是 cpu 排程的最小單位

  • 執行緒不能看做獨立應用,而程式可以
  • 程式由獨立的地址空間,多個程式之間互不影響,執行緒只是程式的不同執行路徑
  • 執行緒沒有獨立的地址空間,多程式的程式比多執行緒的更為健壯
  • 程式切換比執行緒切換的開銷大

1.1 程式

  • 所有與程式相關的資源,都被記錄在程式 PCB 中
  • 程式是搶佔處理機的排程單位
  • 執行緒屬於某個程式,共享其資源
    程式與執行緒

1.2 執行緒

  • 執行緒由 TCB、程式計數器和堆疊暫存器組成

1.3 程式與執行緒的關係

程式與執行緒

2. Java 程式和執行緒的關係

  • Java 對作業系統提供的程式和執行緒進行封裝
  • 執行一個程式會產生一個程式,這個程式中包含一個執行緒
  • 每個程式對應一個 JVM 例項,多個執行緒共享 JVM 中的堆
  • Java 採用單執行緒程式設計模型,程式會主動建立一個主執行緒
  • 主執行緒可以建立子執行緒,原則上主執行緒的完成在子執行緒之後

相關文章