Win32多執行緒之概述

2021-05-21 22:49:40 字數 686 閱讀 7055

win32多執行緒之概述

多執行緒在剛開始工作時也沒怎麼用,只是有時介面卡住了、一拖動程式主介面介面就會出現白色區域,

久久不能消失,慢慢的明白主介面使用主線程,在單一執行緒通道中,乙個任務沒有完成,當前的所有工

作都將被鎖定,拖動介面會產生wm_paint訊息,由於主線程被鎖定那麼這個訊息將不被程式所響應,因

此介面重新整理就無望了!因此適當使用多執行緒、管理好多執行緒對於複雜應用也是極其重要的。

程序、執行緒都是作業系統概念,程序是程式的執行例項,每個程序都有自己4g的虛擬位址空間、**、

資料和其它系統資源組成,在程序執行過程中建立的資源隨著程序的終止而銷毀,使用的系統資源在進

程終止時被釋放或關閉。

但我們應該清楚:windows系統在單cpu機器上按時間片迴圈執行各個執行緒,單cpu機器的多執行緒其實是一

種假象,如果幾個執行緒都很活躍,執行緒之間的切換會很花費cpu時間,這個在多執行緒應用時應該好好注意

我常使用 _beginthreadex(null/*執行緒的安全屬性*/, 0/*執行緒的堆疊大小,如果為0和程序堆疊大小相

同*/, threadproc/*執行緒函式*/, null/*執行緒引數*/, 0/*執行緒的初始狀態*/, &nthreadid/*執行緒的

id*/);  

建立執行緒

另外,需要注意:執行緒是以搶占方式獲取cpu資源,可以設定執行緒的優先級別

Win32多執行緒之核心物件

createthread 傳回兩個值,用以識別乙個新的執行緒。第乙個值是個handle,這也是createthread 的返回值,大部分與執行緒有關的api函式都需要它。第二個值是由lpthreadid帶回來的執行緒id。執行緒id是乙個全域性變數,可以獨一無二地表示系統中任一程序中的某個執行緒。a...

Win32多執行緒之核心物件

createthread 傳回兩個值,用以識別乙個新的執行緒。第乙個值是個handle,這也是createthread 的返回值,大部分與執行緒有關的api函式都需要它。第二個值是由lpthreadid帶回來的執行緒id。執行緒id是乙個全域性變數,可以獨一無二地表示系統中任一程序中的某個執行緒。a...

Win32多執行緒之核心物件

createthread 傳回兩個值,用以識別乙個新的執行緒。第乙個值是個handle,這也是createthread 的返回值,大部分與執行緒有關的api函式都需要它。第二個值是由lpthreadid帶回來的執行緒id。執行緒id是乙個全域性變數,可以獨一無二地表示系統中任一程序中的某個執行緒。a...