【发布时间】:2014-09-16 22:54:28
【问题描述】:
答案here几乎做了我想要的。
我想要一个读写锁:
- 只要没有写入器,就允许读取器获取锁
- 如果作者尝试锁定,请阻止新读者获取它,但允许老读者在给作者锁定之前完成
- 一旦作者释放锁,允许新的读者
上述实现不符合标准 (2)。它允许新读者抓住锁并阻止作者,直到他们完成。
【问题讨论】:
-
当作家获得锁定时,现有的读者怎么办?
-
他们保留它。正如 (2) 中所说,它应该只阻止 new 读者。
-
这听起来不像是一个可行的锁定系统 :)
-
你为什么这么认为?
-
如果新的写入者可以在他们下面修改它,现有的读取器可能会遇到不一致的状态。
标签: c++ multithreading boost mutex