windows 多執行緒程式設計的幾點經驗 防止死鎖

2022-03-31 04:43:36 字數 385 閱讀 6478

2)不建議採用sendmessage往主線程傳送訊息,因為它是同步的,阻塞的,可以考慮採用postmessage代替;

3)執行緒退出時,盡量不要使用terminatethread函式,而盡可能的讓執行緒自己退出;

4) 當執行緒退出時,必須先等待工作者執行緒退出,主線程才退出,但是在主線程裡面不要使用waitforsingleobject或 waitformultiobjects等待執行緒結束,因為它可能造成死鎖,當主線程使用這兩個函式時,主線程就掛起了,尤其在第 (1), (2) 種情況下,工作者執行緒還在呼叫主線程裡面的資源,這樣造成死鎖;

5) 為了防止退出死鎖的發生,盡量使用msgwaitformultipleobjects函式,因為該函式等待時,可以等待執行緒控制代碼 有訊號,而且還可以等待訊息,不會造成死鎖;

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