|
|
1
2
试试这个:
您使用唯一锁的同一个实例
更新
我想补充一点,你的类有公共方法
|
|
2
4
顾名思义,互斥体是
也就是说,这里有一个设计问题。最好不要从外面接近锁止操作。
的要点
例如,让我们添加tweak get:
问题出在哪里?
如果我们没有
|
|
|
3
3
锁不应该是受保护资源的一部分,而应该是调用方的一部分,因为您有一个线程调用方。他们 必须 使用不同的唯一锁。 唯一锁的目的是用raii锁定和释放互斥体,因此您不必显式调用unlock。 当在方法体中声明唯一锁时,它将属于调用线程堆栈。 所以更正确的用法是:
注意const方法的互斥体上的变量。 Boost互斥类型有一个作用域锁typedef,这是一个很好的唯一锁类型。 |
|
|
fiedel · 为什么互斥锁可以被两个线程锁定? 2 年前 |
|
|
da cheng · 在c++11中使用条件变量使程序陷入死锁 7 年前 |
|
|
Eunjeong Choi · 为什么此代码返回意外结果?(条件变量) 7 年前 |
|
|
Razonixx · 从线程内增加全局计数器变量,而不必等待每个线程 7 年前 |
|
|
Administrator · c#-等待完成2个线程中的1个 7 年前 |