为什么C ++ 0x标准委员会拒绝了boost :: shared_mutex?

时间:2011-01-11 15:31:44

标签: multithreading boost c++11

你有关于这个问题的任何信息吗?特别是boost :: shared_mutex和读写器互斥的任何问题?

读写器互斥锁可能被误用,例如频繁的写入锁定会降低性能,即使与简单的互斥锁相比也是如此。但是很多情况下许多读者经常需要一个可以被作家很少修改的共享资源。

2 个答案:

答案 0 :(得分:12)

Anthony Williams是C ++标准委员会的有影响力的成员。他共同撰写了许多导致将线程库包含在C ++ 11标准中的提案。你可以在this commentary中阅读他的反对意见。然而,它确实进入了C ++ 17。

答案 1 :(得分:10)

正如Hans所引用的mail所述,shared_mutex的问题是它的高开销。因此,shared_mutex只能在资源长期保留且只有少数线程竞争资源时才能获益,这种情况非常罕见。

我找到了关于这个问题的另一个detailed article