QReadWriteLock用于线程同步,在有很多线程,对一个共享变量同时读取时,或者同时写时,使用它有助于提高性能。
MyData data;
QReadWriteLock lock;
void ReaderThread::run()
{
...
lock.lockForRead();
access_data_without_modifying_it(&data);
lock.unlock();
...
}
void WriterThread::run()
{
...
lock.lockForWrite();
modify_data(&data);
lock.unlock();
...
}
为了方便使用也可以使用QReadLocker 和 QWriteLocker 来lock一个共享的QReadWriteLock
,这样就不需要写unlock了