对于多线程应用程序,一个最基本要求就是能够实现几个线程的同步执行,Qt提供了下面几个类:QMutex,QReadWrite,QSemaphore,QWaitCondition,用来实现线程同步。
QMutex类可以让多个线程之间互斥地访问一个变量或者一段代码,提供了一个lock()函数用来锁住互斥量mutex,同时unlock()用来释放,过程如下:如果互斥量是解锁的(unlock),那么当前线程就立即占用并锁定(lock)它;如果当前互斥量正在被占用(即被lock),当前线程就进入阻塞状态,直到占有这个互斥量的线程对它进行释放(即解锁unlock)为止。
QMutex mutex;
run()
{
mutex.lock();
互斥量;
mutex.unlock();
}