windows笔记事件内核对象.docxVIP

  • 6
  • 0
  • 约4.29千字
  • 约 6页
  • 2024-02-09 发布于广西
  • 举报

windows笔记-【内核对象线程同步】事件内核对象

在所有的内核对象中,事件内核对象是个最基本的对象。事件能够通知一个操作已经完成。客户机和一个服务器,它们之间需要互相进行通信例子(vs2008)

事件内核对象的组成

一个使用计数(与所有内核对象一样),

一个用于指明该事件是个自动重置的事件还是一个人工重置的事件的布尔值,一个用于指明该事件处于已通知状态还是未通知状态的布尔值。

有两种不同类型的事件对象

一种是人工重置的事件,另一种是自动重置的事件。

当人工重置的事件得到通知时,等待该事件的所有线程均变为可调度线程。

当自动重置的事件得到通知时,等待该事件的线程中只有一个线程变为可调度线程。

当一个线程执行初始化操作,然后通知另一个线程执行剩余的操作时,事件使用得最多。事件初始化为未通知状态,然后,当该线程完成它的初始化操作后,它就将事件设置为已通知状态。这时,一直在等待该事件的另一个线程发现该事件已经得到通知,因此它就变成可调度线程。这第二个线程知道第一个线程已经完成了它的操作。

用CreateEvent 函数创建事件内核对象

HANDLECreateEvent(PSECURITY_ATTRIBUTESpsa,

BOOLfManualReset,BOOLfInitialState,PCTSTRpszName

);

内核对象的操作

文档评论(0)

1亿VIP精品文档

相关文档