为什么在这个代码中使用QMutex?

我正在阅读别人的代码,并且遇到了这段代码,它是多线程应用程序的一部分。此代码是从QThread继承的类中的run()函数的一部分。
我认为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;
}
链接地址: http://www.djcxy.com/p/51221.html

上一篇: Why is QMutex used in this code?

下一篇: Abandoned mutex exception