我需要实现一个以两种方式工作的互斥锁:1. 保护资源免受多个类的影响,以及 2. 保护资源免受类中的方法的影响,该类是插槽并且可能是可重入的。例如(伪 C++):
Class A {
function aaa() {
QMutex mutex;
mutex.lock();
globalvar++;
mutex.unlock()
}
}
Class B {
function bbb() {
QMutex mutex;
mutex.lock();
globalvar++;
mutex.unlock()
}
}
我读了这篇文章,上面说场景 2 被覆盖,因为 A.aaa 被 A.aaa 中断处理(不知何故 Qt/OS 知道它是被保护的同一个资源。对吧?
至于保护同一个资源的 A.aaa 和 B.bbb 我认为它不起作用,因为 Qt/OS 不知道它的同一个资源/互斥体?这是否意味着变量 mutex 需要是全局变量,以便多个不相关的类可以安全地访问它?