文章目錄
1.進程與線程
什麼是內核對象?
程序與進程
線程
線程的運行
2.簡單多線程示例
線程創建函數
HANDLE CreateThread (
SEC_ATTRS SecurityAttributes, //通常設置爲NULL,該線程使用默認的安全性
ULONG StackSize,// 通常設置爲0,默認使用與調用函數的線程相同的棧空間大小
SEC_THREAD_START StartFunction, //新創建的線程的入口函數,該參數指定這個函數的入口函數
PVOID ThreadParameter, //通過這個參數給創建的新線程傳遞參數
ULONG CreationFlags, //它可以是兩個值中的一個:CREATE_SUSPENDED和 0。前者表示線程在創建後處於暫停狀態,直到程序調用ResumeThread函數爲止;如果爲0,則線程在創建之後立即運行。
PULONG ThreadId); //Windows 2000以上的操作系統,該參數可以設爲NULL
線程入口函數的聲明形式
一個簡單的多線程程序
Sleep函數
線程間的交替執行
3.線程同步
引言
火車站售票系統模擬程序
上述程序的隱患
原因分析
線程同步
線程同步原理
線程同步的方法
4.利用互斥對象實現線程同步
互斥對象
獲得互斥對象所有權
釋放互斥對象所有權
實例
5.利用臨界區實現線程同步
臨界區對象
相關API函數
實例