手动锁定唯一/共享加速锁定
Manually locking unique/shared boost lock
我正在研究反向的工人/消费者模式。在这 4 种方法之间,我将执行写入/读取操作。
...
void beginWrite();
void endWrite();
void beginRead();
void endRead();
...
我只知道作用域共享/唯一锁。那么如何通过共享/唯一锁手动完成此操作呢?所以我会在 beginRead 中锁定共享并在 endRead 中释放。还是锁定/释放另一个线程唯一锁?
Boost 的共享锁具有与您列出的功能完全对应的功能。它们是lock
(获取独占锁)、unlock
(释放独占锁)、lock_shared
(获取共享锁)和unlock_shared
(释放共享锁)。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 在cuda线程之间共享大量常量数据
- 如何找到锁定Linux futex的C++行
- G锁定铸造到基础上会释放模拟行为
- 如何从具有移动语义的类对象中生成共享指针
- 在c代码之间共享数据的最佳方式
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 将静态库链接到不带-fPIC的共享库中
- 共享内存的升压容器是否实现锁定?
- 通知线程是否始终需要在修改期间锁定共享数据
- 仅读取共享存储器时,静音锁定
- C 98 Mutex中共享数组的锁定变量
- 手动锁定唯一/共享加速锁定
- 锁定构造函数和析构函数中的共享资源
- 共享/独占锁定,其中共享工作只能执行一次
- 双重检查共享指针的锁定
- 进程间通信 -- 在共享内存中锁定互斥体
- 在C++中为可变长度记录锁定空闲共享内存
- 为什么pthread_mutex_t尝试锁定来自两个不同进程的共享内存时会出现段错误