如何在标准C 11中制作共享_lock或upgrade_lock
How to make a shared_lock or upgrade_lock in standard C++11?
我在新标准中非常缺少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被拒绝。他再次为C 17提出了建议,并在本周在波特兰举行的会议上进行了讨论。
同时,如果您可以使用Boost,那么您也可以;它不会有任何新功能。
也就是说,值得检查使用shared_mutex
实际上是有益的 - 在许多情况下,由于对Mutex本身的争论,它并没有提供希望的表现。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 在cuda线程之间共享大量常量数据
- 如何从具有移动语义的类对象中生成共享指针
- 在c代码之间共享数据的最佳方式
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 将静态库链接到不带-fPIC的共享库中
- 为什么std::互斥需要很长的、非常不规则的时间来共享
- 使用Boost Interprocess创建托管共享内存需要很长时间
- 无法在Ubuntu上将共享库与Eclipse链接
- 从python调用openMP共享库时,未定义opnMP函数
- 在为LINUX创建共享库时,如何避免STL的私有/弱副本
- 为什么我的共享库中存在展开符号
- 使用共享指针的函数调用,其对象应为 const
- 具有两个独占锁组的共享锁
- 共享队列的线程安全
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- 多个"常量引用"变量可以共享同一个内存吗?
- 如何访问由共享指针保存的类方法?
- 从矢量或地图中删除共享指针