为什么在这个代码中使用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