“激发” 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 。