为什么QMutex在此代码中使用?

时间:2012-10-14 12:49:59

标签: qt mutex qthread qmutex

我正在阅读其他人的代码,我遇到了这段代码,它是多线程应用程序的一部分。这段代码是继承自 QThread <的类中run()函数的一部分/ strong>即可。
我认为 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;
}

0 个答案:

没有答案