-
互斥锁(
QMutex)在使用时需要在进入和结束的时候使用对应的函数锁定和解锁。 -
QMutexLocker通常创建为局部变量,QMutexLocker在创建时传入一个并未锁定(若是锁定可用relock重新锁定或unlock解锁)的QMutex指针变量,并且会将QMutex变量锁定,在释放时会将QMutex变量解锁。(QMutexLocker创建时将传入的QMutex锁定,释放时将传入的QMutex解锁) -
QMutex的使用
void CThread::run() { //互斥锁锁定 m_mutex->lock(); //输出当前线程的线程ID qDebug() << QThread::currentThreadId(); //互斥锁解锁 m_mutex->unlock(); } -
QMutexLocker的使用
void CThread::run() { //创建QMutexLocker的局部变量,并将类中互斥锁指针传入(此处互斥锁被locker锁定) QMutexLocker locker(m_mutex); qDebug() << QThread::currentThreadId(); //当locker作用域结束locker将互斥锁解锁 }