執行緒和程序的區別

约翰發表於2020-12-25

1.根本區別(作業系統資源管理方式不同):
程序是 os 資源分配的基本單位,執行緒是任務排程和執行的基本單位;
2.開銷方面:
每個程序都有獨立的程式碼和資料空間(即程式上下文),程式之間的切換會有較大的開銷;
執行緒可以看作輕量級程序,同一類執行緒之間共享程式碼和資料空間,每個執行緒都有自己獨立的執行棧和計數器,執行緒之間切換的開銷小;
3.所處環境:
os 中能同時執行多個程序;
一個程序中有多個執行緒(透過 CPU 排程,每個時間片只有一個執行緒執行)
4.記憶體分配:
每個程序有自己獨立的記憶體空間;
執行緒之間共享其所屬程序的記憶體資源,除了 CPU 外
5.包含關係:
執行緒是程序的一部分;一個程序至少包含一個執行緒,或是多個執行緒;
6.執行方式:
程序獨立執行;
執行緒無法獨立執行,必須依賴於應用程式,由應用程式提供多個執行緒指控;
7.併發性:
同一個程序中的多個執行緒之間可以併發執行;

相關文章