私は他の誰かのコードを読んでいて、マルチスレッドアプリケーションの一部であるこのコードに遭遇しました。このコードは、 QThreadrun()
から継承されたクラスの関数の一部です。QMutexは、変数が複数のスレッドによって同時に変更されるのを防ぐために使用される
と思いました。しかし、ここにクラスのメンバーがいます。したがって、クラスのインスタンスごとに作成されます。
私はミューテックスについて間違っていますか? プログラマーは間違ったコードを書きましたか :) ? または、ここでミューテックスには別のアプリケーションがありますか?stopped
void aThread::run(){
aMutex.lock();
if (stopped)
{
stopped=false;
aMutex.unlock();
break;
}
aMutex.unlock();
}
停止の宣言は次のとおりです。
class aThread : public QThread{
public :
void run();
private:
volatile bool stopped;
}