870920 Menu

多线程及进程间共享数据的保护–其他

关于多线程共享数据的保护,JUCE类库还提供了以下类:

  • SpinLock 最简单的互斥。此互斥类型不能重入,但初始化成本很低,开销极小。适合于并不复杂并且极短的时间内对数据进行锁保护。
  • ReadWriteLock 读写互斥。相当于一个专用于读写操作的临界区,同一时间允许多个读取线程访问数据,但是只允许一个写入线程访问数据。此互斥可供下面两个读写锁使用。
  • ScopedReadLock 作用域读取锁。本类专用于锁定并解锁ReadWriteLock对象。示例:

  • ScopedWriteLock 作用域写入锁。本类专用于锁定并解锁ReadWriteLock对象。示例参见上面ScopedReadLock类的示例,将其替换为ScopedWriteLock即可。

除了线程间的数据锁定(保护),JUCE还提供了进程间锁定类InterProcessLock。该类的功能与CriticalSection临界区类基本一致,不同处有二:

 临界区类用于线程间的数据保护,而InterProcessLock则用于进程间的数据保护。
 InterProcessLock对象使用InterProcessLock::ScopedLockType类的对象来锁定。