0

我正在阅读别人的代码,我遇到了这段代码,它是多线程应用程序的一部分。这段代码是从QThreadrun()继承的类中函数的一部分。 我认为QMutex用于保护变量不被多个线程同时更改。但这里是班级的成员。因此它将为类的每个实例创建。 我对互斥锁错了吗?程序员是否编写了错误的代码:)?或者这里互斥量有另一个应用程序?
stopped

void aThread::run(){
   aMutex.lock();
   if (stopped)
   {
     stopped=false;
     aMutex.unlock();
     break;
   }
   aMutex.unlock();
}

这是 stop 的声明:

class aThread : public QThread{
public :
   void run();
private:
    volatile bool stopped;
}
4

0 回答 0