QWriteLocker

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

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

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

公共成员函数

返回类型函数
QWriteLocker(QReadWrtiteLock *lock)
~QWriteLocker()
QReadWriteLock *readWriteLock() const
voidrelock()
voidunlock()

详细描述

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

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

QReadWriteLock lock;

void writeData(const QByteArray &data)
{
    QWriteLocker locker(&lock);
    ...
}

等价于以下代码:

QReadWriteLock lock;

void writeData(const QByteArray &data)
{
    lock.lockForWrite();
    ...
    lock.unlock();
}

  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()。