程式之間的差異
Program - 程式
在 IDE、editor 所寫的程式碼,是一群程式碼的結合,平常撰寫的專案就是 Program。
Process - 程序、進程
是由 Program 所產生的執行實體,一個 Program 可以執行多次,產生多個 Process。
不能算是基本的執行單位,只能算是 Thread 的容器,可以擁有多個 Thread。
需要一些資源才能完成工作,如: CPU、記憶體、檔案、I/O裝置。
每個 Process 互相獨立,不同 Process 的 Memory space (記憶體空間) 也不相同,各自的 Local variables(區域變數) 也不能共用。
使用情境
Mac 的活動監視器看到的 PID 就是 Process。
Thread - 線程、執行緒
作業系統中能夠計算的最小單位,被包含在 Process 裡面,並共享 Process 資源。
在 Multi-threading(多執行緒)環境:
兩個執行緒若同時存取或改變全域變數,就有可能發生 Synchronization(同步)
若互搶資源,則會發生 Deadlock (死結)。
使用情境
聊天室的 Process,可以同時接收和傳送給對方,就是同個 Process 不同 Thread。
並發 與 並行
問題探討
1 個 Process 可以建多少個 Thread?
參考資料
Last updated
Was this helpful?