|
1
2
您仍然可以使用
考虑以下场景,其中涉及2个线程,它们需要独占访问2个资源(每个资源由互斥对象保护):
这种情况的解决方案是,所有线程都必须锁定互斥对象 按相同顺序 . |
|
|
2
2
不同的命令或条件可能是你的敌人。考虑以下内容(我使用
|
|
|
3
1
用std::recursive_mutex替换std::mutex有助于避免线程锁定自身导致的死锁。 这不是一个有保证的解决方案。如果锁定顺序或外部资源依赖关系错误,仍然可能发生死锁。 只有在递归锁定真正需要时才使用std::recursive_mutex。考虑其他替代方案。 |
|
|
fiedel · 为什么互斥锁可以被两个线程锁定? 2 年前 |
|
|
da cheng · 在c++11中使用条件变量使程序陷入死锁 7 年前 |
|
|
Eunjeong Choi · 为什么此代码返回意外结果?(条件变量) 7 年前 |
|
|
Razonixx · 从线程内增加全局计数器变量,而不必等待每个线程 7 年前 |
|
|
Administrator · c#-等待完成2个线程中的1个 7 年前 |