【同步对象】是一个对象,其句柄可以在等待功能之一中指定,以协调多个线程的执行。多个进程可以拥有同一个同步对象的句柄,使进程间同步成为可能。
以下对象类型仅用于同步。
类型 | 描述 |
事件 | 通知发生事件的一个或多个等待线程。有关详细信息,请参阅事件对象. |
互斥 | 一次只能拥有一个线程,使线程能够协调对共享资源的互斥访问。有关详细信息,请参阅互斥对象. |
信号 | 保持零和某个最大值之间的计数,限制同时访问共享资源的线程数。有关详细信息,请参阅信号量对象. |
计时器 | 通知指定时间到达的一个或多个等待线程。有关详细信息,请参阅可等待Matawā对象. |
虽然可用于其他用途,但以下对象也可用于同步。
目的 | 描述 |
更改通知en | 由FindFirstChangeNotification函数创建时,在指定的目录或目录树中发生指定类型的更改时,会将其状态设置为发出信号。有关详细信息,请参阅档. |
控制台输入 | 创建控制台时创建。控制台输入的句柄由指定CONIN $时的CreateFile功能返回,或者由GetStdHandle功能返回。当控制台的输入缓冲区中有未读的输入时,它的状态被设置为发出信号,当输入缓冲区为空时,它的状态被置为无信号。有关控制台的更多信息,请参阅控制台和字符模式支持. |
处理 | 通过调用CreateProcess函数创建新进程时创建。当进程运行时,它的状态被设置为非指定状态,并且在进程终止时发出信号。有关进程的更多信息,请参阅进程和线程. |
线 | 通过调用CreateProcess,CreateThread或CreateRemoteThread功能创建新线程时创建。当线程运行时,它的状态被设置为非指定,并且在线程终止时发出信号。有关线程的更多信息,请参阅进程和线程. |
在某些情况下,您也可以使用名为管道或通讯设备的文件作为同步对象;但是,不鼓励用于此目的。有关文件,命名管道或通信的I / O操作的其他信息,请参阅同步和重叠输入和输出.