本篇内容介绍了“C++怎么将mutex和被保护数据一起定义”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
CP.50:将mutex和被保护数据一起定义,如果可能使用
It should be obvious to a reader that the data is to be guarded and how. This decreases the chance of the wrong mutex being locked, or the mutex not being locked.
数据被保护的事实以及如何被保护对于代码的读者来讲都应该是显而易见的。这可以减少锁定错误的mutex或者没有锁定正确的mutex的可能性。
Using a synchronized_value<T> ensures that the data has a mutex, and the right mutex is locked when the data is accessed. See the WG21 proposal to add synchronized_value to a future TS or revision of the C++ standard.
使用synchronized_value<T>可以保证数据带锁,并且数据被访问时锁定正确的mutex。参见意在向将来的技术规格或标准C++的某个版本增加synchronized_value功能的WG21。
Example(示例)
struct Record {
std::mutex m; // take this mutex before accessing other members
// ...
};
class MyClass {
struct DataRecord {
// ...
};
synchronized_value<DataRecord> data; // Protect the data with a mutex
};
“C++怎么将mutex和被保护数据一起定义”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。