windows中的多執行緒

2021-06-26 13:03:40 字數 873 閱讀 1778

建立新的執行緒的api函式是createthread;

hthread = createthread (&security_attributes, dwstacksize, threadproc,pparam, dwflags, &idthread) ;//threadproc函式名

第乙個引數是指向security_attributes型態結構的指標。在windowsnt中為null(引用可代替)。

第二個引數是用於新執行緒的初始堆疊大小,預設值為0。(需要動態分配堆疊)。

createthread 的第三個引數是指向執行緒函式的指標。函式名稱沒有限制,

但是必須以下列形式申明:

dword winapi threadproc (pvoid pparam) ;//threadproc函式名

createthread 的第四個引數為傳遞給threadproc 的引數。這樣主線程和

從屬執行緒就可以共用資料。

createthread 的第五個引數通常為0,但當建立的執行緒不馬上執行時為

旗標create_suspended。執行緒將暫停直到呼叫resumethread 來恢復執行緒的

執行為止。

第六個引數是乙個指標,指向接受執行緒id 值的變數。

ps:大多數windows 程式寫作者喜歡用在process.h 表頭檔案中宣告的c 執行

時期程式庫函式_beginthread。

它的語法如下:

hthread = _beginthread (threadproc, uistacksize, pparam) ;

它更簡單,對於大多數應用程式很完美,這個執行緒函式的語法為:

void __cdecl threadproc (void * pparam) ;

Windows中多執行緒的同步

windows程序間同步方式有 1.互斥量 mutex 2.訊號量 semaphore 3.事件 event 4.臨界區 critical section 5.互鎖函式 臨界區和互鎖函式沒有相應的核心物件因而不能跨程序 只能同步同乙個程序的執行緒之間的同步,因為臨界區不能跨越程序的邊界工作。也是因為...

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