1. 程式人生 > >Windows 核心 程序 執行緒 初探~

Windows 核心 程序 執行緒 初探~

對於WIndows的初學者的我來說,執行緒、程序是一個很抽象的概念,理解他們是比較困難的。接下來我就講一下程序、執行緒的概念及關係。

查閱資料得出,在windows下這兩個概念都和系統核心物件脫不開關係。

那麼什麼是系統核心物件呢?

核心物件是系統核心分配的一個記憶體塊,該記憶體塊描述的是一個數據結構,其成員負責維護物件的各種資訊。核心物件的資料只能由系統核心來哦訪問,應用程式無法在記憶體中找到這些資料結構並直接改變他們的內容。

舉個例子:核心物件就像是一個玻璃瓶,描述的是一個玻璃纖維結構,它的成員負責為何玻璃瓶的各種資訊。玻璃瓶的玻璃纖維只能由製造他的人(就是系統核心)訪問,使用它的人(相當於應用程式)無法對這些玻璃纖維做出改變。

核心物件這段說明是否儲存  存在爭議

程序是一個正在執行的程式的例項,他屬於系統核心物件。程序提供地址空間,其中包含有可執行程式和動態連結庫的程式碼和資料,此外還提供了執行緒對戰和程序堆控制元件等動態分配記憶體的空間。

從上述描述中可以發現,程序主要由兩部分構成,即系統核心用於管理程序的程序核心物件和程序地址空間。那麼程序是如何實現應用程式行為的呢?可以將程序簡單的理解為一個容器,它只提供空間,執行程式的程式碼是由執行緒實現的。執行緒存在於程序中,他負責執行程序地址空間中的程式碼。當一個程序建立時,系統會自動為其建立一個執行緒,該執行緒被稱為主執行緒。在主執行緒中使用者可以通過程式碼建立其他執行緒,當程序總的主執行緒結束時,程序也就結束了。

我會在下面接著說明MFC怎麼建立。以上部分參考自《Visual C++從入門到精通》(第三版)

順便廣告一下我們的Qt群:368241647