我是并发新手,我对 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/