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