執行緒和程式的區別

約翰發表於2020-12-25

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

相關文章