VC++線程總結


1. 創建線程

HANDLE CreateThread(。。。)

2.暫停線程 

DWORD SuspendThread(HANDLE hThread);

3. 重啓線程

DWORD ResumeThread(HANDLE hThread);

4. VOID ExitThread(DWORD dwExitCode);
該函數用於線程終結自身的執行,主要在線程的執行函數中被調用。其中參數dwExitCode用來設置線程的退出碼。
5. BOOL TerminateThread(HANDLE hThread,DWORD dwExitCode);
一般情況下,線程運行結束之後,線程函數正常返回,但是應用程序可以調用TerminateThread強行終止某一線程的執行。
6. BOOL PostThreadMessage();

該函數將一條消息放入到定線程的消息隊列中,並且不等到消息被該線程處理時便返回。

7.線程同步對象的使用;
同步對象有:Critical_section(臨界區),Event(事件),Mutex(互斥對象),Semaphores(信號量)。都有相應的 API創建函數和MFC類,同步對象可以處於兩種狀態:信號狀態(signal state)或非信號狀態,當一個線程與某個對象相關聯時,若該對象處於非信號狀態,則要等到其變成信號狀態線程才能繼續執行。
WIN32 API提供了等待命令WaitForSingleObject和WaitForMutipleObjects:
如果在指定時間內對象達到 信號狀態則返回WAIT_OBJECT_0,超時返回WAIT_TIMEOUT,出錯返回 WAIT_FAILED。對於互斥量、信號量和自動重置(auto-reset)事件對象,等待成功時將它們改成非信號狀態(信號量計數器減1),以實現對象的互斥訪問。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章