QReadLocker 类

QReadLocker 类是一个便利类,用于简化对读-写锁的自读访问的锁定和解锁。 更多...

头文件 #include <QReadLocker>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

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

公共函数

QReadLocker(QReadWriteLock *lock)
~QReadLocker()
QReadWriteLock *readWriteLock() const
voidrelock()
voidunlock()

详细说明

QReadLocker(和QWriteLocker)的目的在于简化QReadWriteLock的锁定和解锁。锁定和解锁语句或在异常处理代码中容易出错且难以调试。在上述情况下,可以使用QReadLocker来确保锁的状态始终定义良好。

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

QReadWriteLock lock;

QByteArray readData()
{
    QReadLocker locker(&lock);
    ...
    return data;
}

这等价于以下代码

QReadWriteLock lock;

QByteArray readData()
{
    lock.lockForRead();
    ...
    lock.unlock();
    return data;
}

QMutexLocker 文档展示了使用锁对象可以极大地简化编程的示例。

另请参阅:QWriteLockerQReadWriteLock

成员函数文档

QReadLocker::QReadLocker(QReadWriteLock *lock)

构建一个 QReadLocker 并写入将 lock 锁定。当 QReadLocker 被销毁时将解锁。如果 lock 为零,则 QReadLocker 什么也不做。

另请参阅:QReadWriteLock::lockForRead

[noexcept] QReadLocker::~QReadLocker()

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

另请参阅:QReadWriteLock::unlock

QReadWriteLock *QReadLocker::readWriteLock() const

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

void QReadLocker::relock()

重新锁定未解锁的锁。

另请参阅:unlock

void QReadLocker::unlock()

解锁与此锁关联的锁。

另请参阅:QReadWriteLock::unlock

© 2024 Qt公司有限公司。此处包含的文档贡献版权属于其各自所有者。本文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3进行许可。Qt及其相关标志是芬兰以及/或其他国家和地区Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。