c++ - 什么是 std::mutex 对象的关键资源

标签 c++

我是并发新手,我对 std::mutex 有疑问。假设我有一个 int a;书本告诉我要声明一个互斥量;获得对 a 的独占访问权。现在我的问题是互斥对象如何识别它必须保护哪些关键资源?我的意思是哪个变量? 假设我有两个变量 int a,b;现在我声明 mutex abmut;现在 abmut 会保护什么??? a 和 b 还是只有 a 或 b???

最佳答案

您的怀疑是有道理的:事实并非如此。这是你作为程序员的工作,确保只有在你有互斥量的情况下才能访问 a。如果其他人获得了互斥锁,请不要访问 a 否则您将遇到与没有互斥锁时相同的问题。这适用于所有线程同步结构。 可以使用它们来保护资源。他们不会自己做。

关于c++ - 什么是 std::mutex 对象的关键资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17585902/

相关文章:

c++ - 比较两个 std::vectors/arrays 或者通常比较两个 STL 容器

c++ - Cython 扩展类 : "incorrect checksum for freed object" after __dealloc__ method

c++ - 不可预测的线程行为

c++ - 在 Ubuntu 12.04.1 LTS libssl libcrypto 上取消定义引用

c++ - 如何实现不同参数结构的纯虚函数

C++ gdi::Bitmap 到内存中的 PNG 图像

c++ - 如何将图像和 QProgressBar 放入 QTableView 中?

c++ - 为什么我可以在成员函数中使用尚未声明的成员变量?

c++ - 如何在 Windows 上自动交换两个指针?

c++ - C++ 中的 (...) 参数是做什么的