QWriteLocker Class

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

头文件: #include <QWriteLocker>
CMake.QWriteLocker find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

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

公共函数

QWriteLocker(QReadWriteLock *lock)
~QWriteLocker()
QReadWriteLock *readWriteLock() const
void relock()
void unlock()

详细说明

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

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.