QWriteLocker 类

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

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

注意:此类中所有函数均 线程安全

公共函数

QWriteLocker(QReadWriteLock *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 的文档显示了使用锁对象如何大大简化编程的示例。

另请参阅QReadLockerQReadWriteLock

成员函数文档

QWriteLocker::QWriteLocker(QReadWriteLock *lock)

构建一个 QWriteLocker 并锁定lock以进行写操作。当 QWriteLocker 被销毁时,将解锁。如果 lock 为零,则 QWriteLocker 不做任何操作。

另请参阅QReadWriteLock::lockForWrite

[noexcept] QWriteLocker::~QWriteLocker()

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

另请参阅QReadWriteLock::unlock

QReadWriteLock *QWriteLocker::readWriteLock() const

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

void QWriteLocker::relock()

重新锁定未解锁的锁。

另请参阅unlock

void QWriteLocker::unlock()

解锁此锁定器关联的锁定。

另请参阅QReadWriteLock::unlock

© 2024 Qt公司有限公司。此处包含的文档贡献为各自所有者的版权。提供的文档受GNU自由文档许可第1.3版的条款约束,由自由软件基金会发布。Qt及其相关标志为芬兰及全球其他地区的Qt公司商标。所有其他商标均为各自所有者的财产。