如何在标准C 11中创建shared_lock或upgrade_lock?

前端之家收集整理的这篇文章主要介绍了如何在标准C 11中创建shared_lock或upgrade_lock?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从新标准std :: shared_lock模板类中遗漏了很多东西.
在Boost.Thread中有boost :: shared_lock,甚至还存在boost :: upgrade_lock.

为什么这样,C 11中没有std :: shared_lock和std :: unique_lock?
如何获得类似boost :: shared_lock的行为,但在纯C 11中?

我正在考虑使用boost :: shared_lock< std :: mutex>,但这没有多大意义,因为std :: mutex没有lock_shared()成员.而且,没有像std :: shared_mutex这样的东西.

解决方法

霍华德对std :: shared_mutex的提议由于没有时间正确考虑而拒绝了C 11.他再次为C17提出了这个问题,本周在波特兰举行的会议上对此进行了讨论.

同时,如果你可以使用Boost那么你也可以;标准化不会有任何新功能.

也就是说,值得检查的是,使用shared_mutex实际上是有益的 – 在许多情况下,由于互斥锁本身的争用,它无法提供所希望的性能提升.

猜你在找的C&C++相关文章