Posted on 2007-03-29 15:59
kk 閱讀(299)
評論(0) 編輯 收藏 引用 所屬分類:
IT
“激發”
signaled
對于不同的核心對象有不同的意義
Thread
線程,當線程結束時,線程對象即被激發。當線程還在進行時,則對象處于未激發狀態。
Process
進程,當進程結束時,進程對象即被激發。當進程還在進行時,則對象處于未激發狀態。
Change Notification
,當一個特定的磁盤子目錄中發生一件特別的變化時,此對象即被激發。此對象系由
FindFirstChangeNotification()
產生
Console Input
,當
console
窗口的輸入緩沖區中有數據可用時,此對象將處于激發狀態。
CreateFile
()和
GetStdFile
()兩函數可以獲得
console handle
。
Event
,
Event
對象的狀態直接受控于應用程序所使用的三個
Win32
函數:
SetEvent
(),
PulseEvent
(),
ResetEvent
()。
CreateEvent
()和
OpenEvent
()都可以傳回一個
event object handle
。
Event
對象的狀態也可以被操作系統設定——如果使用于“
overlapped
”操作時。
Mutex
,如果
mutex
沒有被任何線程擁有,他就是處于激發狀態。一旦一個等待
mutex
的函數返回了,
mutex
也就自動重置為未激發狀態。
CreateMutex
()和
OpenMutex
()都可以獲得一個
Mutext
的
handle
。
Semaphore
,
Semaphore
有點像
mutex
,但他有個計數器,可以約束其擁有者(線程)的個數。當計數器內容大于
0
時,
semaphore
處于激發狀態,當計數器內容等于
0
時,
semaphore
處于未激發狀態。
CreateSemaphore
()和
OpenSemaphore
()可以傳回一個
semaphore handle
。