千家信息网

C++怎么将mutex和被保护数据一起定义

发表于:2024-09-28 作者:千家信息网编辑
千家信息网最后更新 2024年09月28日,本篇内容介绍了"C++怎么将mutex和被保护数据一起定义"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所
千家信息网最后更新 2024年09月28日C++怎么将mutex和被保护数据一起定义

本篇内容介绍了"C++怎么将mutex和被保护数据一起定义"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

CP.50:将mutex和被保护数据一起定义,如果可能使用

synchronized_value

Reason(原因)

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 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可以保证数据带锁,并且数据被访问时锁定正确的mutex。参见意在向将来的技术规格或标准C++的某个版本增加synchronized_value功能的WG21。

Example(示例)

struct Record {
std::mutex m; // take this mutex before accessing other members
// ...
};

class MyClass {
struct DataRecord {
// ...
};
synchronized_value data; // Protect the data with a mutex
};

"C++怎么将mutex和被保护数据一起定义"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0