QReadLocker

  QReadLocker 是工具类,它简化了对读写锁,读访问的的锁定和解锁。更多…

属性 内容
头文件 #include<QReadLocker>
qmake QT += core

注意: 此类中所有函数都是线程安全的。

公共成员函数

返回类型 函数
QReadLocker(QReadWrtiteLock *lock)
~QReadLocker()
QReadWriteLock * readWriteLock() const
void relock()
void unlock()

详细描述

  QReadLocker(和 QWriteLocker)的目的是简化 QReadWriteLock 的锁定和解锁。锁定和解锁语句、异常处理代码是很容易出错的,而且很难调试。QReadLocker 可以确保在此类情况下,锁的状态始终定义良好。

  下面是一个使用 QReadLocker 锁定和解锁读写锁的示例:

  1. QReadWriteLock lock;
  2. QByteArray readData()
  3. {
  4. QReadLocker locker(&lock);
  5. ...
  6. return data;
  7. }

等价于以下代码:

  1. QReadWriteLock lock;
  2. QByteArray readData()
  3. {
  4. lock.lockForRead();
  5. ...
  6. lock.unlock();
  7. return data;
  8. }

  QMutexLocker 文档展示了使用locker对象来大大简化编程的示例。

另请参阅: QWriteLockerQReadWriteLock

成员函数文档

QReadLocker::QReadLocker(QReadWriteLock *lock)

  构造一个 QReadLocker 并锁定用于读取的锁。当 QReadLocker 被销毁时,锁将被解锁。如果 lock == nullptr,则 QReadLocker 不执行任何操作。

另请参阅: QReadWriteLock::lockForRead()。


QReadLocker::~QReadLocker()

  销毁 QReadLocker 并解锁传递给构造函数的锁。

另请参阅: QReadWriteLock::unlock()。


QReadWriteLock *QReadLocker::readWriteLock() const

  返回传递给构造函数的读写锁的指针。


void QReadLocker::relock()

  重新锁定。

另请参阅: unlock()。


void QReadLocker::unlock()

  解锁。

另请参阅: QReadWriteLock::unlock()。