手动锁定唯一/共享加速锁定

Manually locking unique/shared boost lock

本文关键字:锁定 共享 加速 唯一      更新时间:2023-10-16

我正在研究反向的工人/消费者模式。在这 4 种方法之间,我将执行写入/读取操作。

...
void beginWrite();
void endWrite();
void beginRead();
void endRead();
...

我只知道作用域共享/唯一锁。那么如何通过共享/唯一锁手动完成此操作呢?所以我会在 beginRead 中锁定共享并在 endRead 中释放。还是锁定/释放另一个线程唯一锁?

Boost 的共享锁具有与您列出的功能完全对应的功能。它们是lock(获取独占锁)、unlock(释放独占锁)、lock_shared(获取共享锁)和unlock_shared(释放共享锁)。