使用WinAPI进行多个读取器/单个写入器锁定

时间:2013-10-17 12:16:22

标签: c++ multithreading winapi locking readwritelock

是否有常用的“最佳实践”读写锁WinAPI实现?我只找到one implementation并且不知道它是否可靠。

2 个答案:

答案 0 :(得分:3)

Win32 Critical Sections在等待之前使用一些旋转。你只有2个读者线程和罕见的写作。只需对整个事物使用一个Critical部分,我认为你将获得非常好的性能/简单性比率。您可能希望使用RAII惯用法来阻止离开CS获取的退出路径。

答案 1 :(得分:1)

WinXP API中没有这样的锁定。 您可以使用boost中的shared_mutex。 Example。顺便说一下,当你有很多读者和一些偶尔的作家时,这样的锁是有意义的。如果不是你的情况 - 只需使用互斥(临界区)。