Windows多執行緒程式設計 1 基本概念

2021-05-22 22:58:22 字數 1114 閱讀 2375

程式:乙個靜態的指令序列。

程序:為執行程式指令的執行緒而保留的一系列系統資源的集合。

執行緒:作業系統排程執行的最小單元。

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...