我正在阅读别人的代码,我遇到了这段代码,它是多线程应用程序的一部分。这段代码是从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;
}