本章描述了在使用缓存监视器时使用的函数。与普通监视器不同,缓存监视器与受保护对象的地址相关联,并且此关联仅在需要保护时才维护。这种安排允许缓存监视器与另一个对象相关联,而无需为所有对象预分配监视器。哈希表用于快速将地址映射到其相应的监视器。系统会根据需要自动扩展哈希表。

重要

缓存监视器的使用速度比非缓存监视器慢。

有关非缓存监视器的信息,请参阅 监视器

缓存监视器函数

缓存监视器允许客户端以延迟方式关联监视保护和状态更改同步。监视功能仅在需要时才与受保护对象相关联,从而允许重用监视器对象。这种额外的灵活性是以牺牲少量性能为代价的。

  • PR_CEnterMonitor 进入与缓存监视器关联的锁。

  • PR_CExitMonitor 递减与缓存监视器关联的入口计数。

  • PR_CWait 等待通知监视器状态已更改。

  • PR_CNotify 通知正在等待监视数据状态更改的线程。

  • PR_CNotifyAll 通知所有正在等待监视数据状态更改的线程。