【发布时间】:2019-07-12 08:14:26
【问题描述】:
大家好, 我对互斥锁有一些疑问(主题已经很具体)。所以,我需要确保不要有误解(https://en.cppreference.com/w/cpp/thread/mutex):
1) 我想确定一个 std::mutex 不能同时在 2 个线程之间共享。是真的吗?
2) 如果两个独立线程随机同时询问互斥锁,会发生什么?
3) 据我了解,当一个线程获取互斥体时,它会阻止任何其他线程同时修改全局变量。好理解吗?
如果我对这些问题中的任何一个问题,您能纠正吗?
我会感谢你的。
【问题讨论】:
-
是的。不会发生。是的。
-
1) 是的。也可以查看 shared_mutex 。 2)互斥体处理它,你不应该担心 3)在互斥体被释放之前,任何带有互斥体的代码都不能被另一个线程同时执行
-
@super,当一个线程“获取互斥锁”时,绝对不会阻止其他线程“同时修改全局变量”。除了阻止其他线程“获取”同一个互斥体之外,它不会阻止任何事情。
标签: c++ multithreading mutex