2 つの方法で機能するミューテックスを実装する必要があります。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()
}
}
A.aaa によって中断された A.aaa が処理されるため、シナリオ 2 がカバーされているというこの投稿を読みました (どういうわけか Qt/OS は、保護されているのと同じリソースであることを認識しています。そうですか?
A.aaa と B.bbb が同じリソースを保護している場合、Qt/OS は同じリソース/ミューテックスを認識していないため、機能しないと思いますか? 複数の無関係なクラスが安全にアクセスできるように、変数ミューテックスはグローバルである必要があるということですか?