1. 程式人生 > 實用技巧 >淺談程序與執行緒的關係和區別

淺談程序與執行緒的關係和區別

一、概念

**程序:**程序是一個具有一定獨立功能的程式關於某個資料集合上的一次執行活動,是系統資源分配和獨立執行的最小單位;
**執行緒:**執行緒是程序的一個執行單元,是任務排程和系統執行的基本單位;

二、區別

**1、根本區別:**程序是作業系統資源分配和獨立執行的最小單位;執行緒是任務排程和系統執行的最小單位。
**2、地址空間區別:**每個程序都有獨立的地址空間,一個程序崩潰不影響其它程序;一個執行緒組中多個執行緒共享一個程序的地址空間,一個執行緒的非法操作會使整個程序崩潰。
**3、上下文切換開銷區別:**每個程序有獨立的程式碼和資料空間,程序之間上下文切換有較大的開銷;執行緒組共享程式碼和資料空間,執行緒之間切換的開銷較小。

**4、 包含關係區別:**一個程序由一個或多個執行緒組成;執行緒是一個程序中程式碼的不同執行路線。

三、聯絡

程序和執行緒之間的聯絡如下圖所示:
在這裡插入圖片描述
在這裡插入圖片描述
(該圖轉自部落格https://blog.csdn.net/weixin_43258908/article/details/89417917

四、總結

執行緒執行的開銷小,一般優先使用執行緒。