程式:乙個靜態的指令序列。
程序:為執行程式指令的執行緒而保留的一系列系統資源的集合。
執行緒:作業系統排程執行的最小單元。
1、程序
應用程式的乙個執行例項。管理著一組可用的系統資源,如記憶體空間,cpu執行時間等。
程序可以處理以下三種狀態之一:
執行:正在使用cpu。
就緒:當前能夠執行,但由於cpu正在執行其它程序,所以需要等待。
阻塞:由於不能得到所需資源等原因而不能執行,需要等外部事件發生。
進行的基本構成:
乙個可執行的指令集合。
乙個私有的虛擬位址空間。
系統資源,包含訊號量、通訊埠、檔案等。
至少乙個執行執行緒。
程序id。
2、執行緒
作業系統分配系統資源的最小執行單元。
執行緒的基本構成:
表示處理器狀態的暫存器。
乙個由子系統、執行時庫和動態鏈結庫使用的私有儲存區。
乙個執行緒id。
3、執行緒同步
保證多個執行緒的操作之間的協調、有序。執行緒通過休眠機制實現同步。
4、核心物件
由系統核心建立和管理的物件。應用程式只能通過api函式來操作這些物件。
用於實現執行緒同步的核心物件有:臨界段、互斥量、事件、訊號量。
5、物件與控制代碼
物件:預先定義的靜態型別的乙個執行態例項。
控制代碼:標識物件的乙個值。
6、安全屬性
描述核心物件由誰建立,可以被誰訪問。在建立核心物件晨,由乙個security_attributes結構體型別的變數指定。
7、執行緒排程方式
輪循式,搶占式。 windows作業系統採用的是搶占式執行緒排程方案。
windows作業系統下,執行緒優先順序分為32級(用0-31表示,0最低,31最高)。搶占式排程方案下,優先保證所有高優先順序執行緒全部執行完畢。也就是說只有系統中的所有31優先順序的執行緒全部執行結束,30優先順序的執行緒才有可能被執行。
作業系統會動態調整執行緒優先順序。
Windows多執行緒程式設計
一 問題的提出 編寫乙個耗時的單執行緒程式 新建乙個基於對話方塊的應用程式singlethread,在主對話方塊idd singlethread dialog新增乙個按鈕,id為idc sleep six second,標題為 延時6秒 新增按鈕的響應函式,如下 void csinglethread...
windows多執行緒程式設計
程序 乙個執行的程式,記憶體,cpu時間等都歸程序所有.執行緒 cpu排程的最小單位,乙個程序內的多個執行緒共享4g記憶體.程式的乙個執行路徑 1.最基礎的使用方法.createthread,exitthread,closehand include include createthread,exit...
Windows多執行緒程式設計
函式原型 handlewinapi createthread lpsecurity attributes lpthreadattributes,size t dwstacksize,lpthread start routine lpstartaddress,lpvoid lpparameter,dw...