QWriteLocker

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

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

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

公共成员函数

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

详细描述

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

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

  1. QReadWriteLock lock;
  2. void writeData(const QByteArray &data)
  3. {
  4. QWriteLocker locker(&lock);
  5. ...
  6. }

等价于以下代码:

  1. QReadWriteLock lock;
  2. void writeData(const QByteArray &data)
  3. {
  4. lock.lockForWrite();
  5. ...
  6. lock.unlock();
  7. }

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

另请参阅: QReadLockerQReadWriteLock

成员函数文档

QWriteLocker::QWriteLocker(QReadWriteLock *lock)

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

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


QWriteLocker::~QWriteLocker()

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

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


QReadWriteLock *QWriteLocker::readWriteLock() const

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


void QWriteLocker::relock()

  重新锁定。

另请参阅: unlock()。


void QWriteLocker::unlock()

  解锁。

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