Windows多執行緒程式設計

2021-07-04 22:01:02 字數 987 閱讀 5199

函式原型:

handlewinapi createthread(

lpsecurity_attributes lpthreadattributes,

size_t dwstacksize,

lpthread_start_routine lpstartaddress,

lpvoid lpparameter,

dword dwcreationflags,

lpdword lpthreadid

);函式說明:

第乙個引數表示執行緒核心物件的安全屬性,一般傳入null表示使用預設設定。

第二個引數表示執行緒棧空間大小。傳入0表示使用預設大小(1mb)。

第三個引數表示新執行緒所執行的執行緒函式位址。

第四個引數是傳給執行緒函式的引數。

第五個引數指定額外的標誌來控制線程的建立,為0表示執行緒建立之後立即就可以進行排程,如果為create_suspended則表示執行緒建立後暫停執行,這樣它就無法排程,直到呼叫resumethread()。

第六個引數將返回執行緒的id號,傳入null表示不需要返回該執行緒id號。

函式返回值:

成功返回新執行緒的控制代碼,失敗返回null。 

應該使用更優的函式_beginthreadex,_beginthreadex內部仍然呼叫createthread,但它會為每乙個執行緒建立各自己的私有資料,以便其安全的使用標準c庫(如errno等)。需要包含

a、執行緒自己主動return

b、執行緒自己呼叫void exitthread(dword dwexitcode)退出(優先選擇編譯器推薦的_endthread)

c、程序內的其它執行緒強制其它執行緒退出,呼叫bool terminatethread( handle hthread, dword dwexitcode);,通過呼叫waitforsingleobject等待執行緒終止,bool getexitcodethread( handle hthread, lpdword lpexitcode);獲取執行緒退出碼

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多執行緒程式設計2

強調 win32說明檔案一再強調執行緒分為gui執行緒和worker執行緒兩種。gui執行緒 負責建造視窗以及處理主訊息迴圈。worker 負責執行純粹運算工作,如重新 計算或重新編頁等等,它們會導致主線程的訊息佇列失去反應。一般而言,gui 執行緒絕不會去做那些不能夠馬上完成的工作。gui執行緒的...