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