Har*_*rry 6 c++ multithreading boost
这似乎是一个非常简单的问题,但在我的所有研究中,我都找不到一个明确的例子......
我正在尝试使用getter和setter函数构建一个可以访问私有变量的自定义类.此类将在全局范围(extern)中实例化一次,并将在我的应用程序中用作数据缓存.它将被许多线程同时使用,99%用于读取,速度非常重要.有没有办法允许并发读取只是锁定写入?(我假设没有)
我是否只是将一个范围的互斥锁作为getter和setter的第一行?或者如何设计这个看似简单的物体的最佳方法?任何例子或链接都将非常感激(我很难绕过它).
我确实编译了Boost,所以它可以使用.
对此,我真的非常感激!
假设您的封装是正确的,那么getter和setter上的锁就足够了.
要提供并发读取,请查看Readers-Writer锁定,它可以精确地提供所需的同步级别.我觉得boost::shared_mutex符合要求.
由于这是一个缓存,如果您能够容忍过时的值,那么就性能而言,调查RCU或读取复制更新可能是值得的.用户空间RCU 至少有一个库.
| 归档时间: |
|
| 查看次数: |
1172 次 |
| 最近记录: |