本页内容

QWriteLocker Class

QWriteLocker 类是一个便捷类,用于简化写入访问时读写锁的加锁和解锁操作。更多内容...

头文件: #include <QWriteLocker>
CMake: 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 的文档中展示了使用锁对象能极大简化编程的示例。

另请参阅 QReadLocker 和QReadWriteLock 。

成员函数文档

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

© 2026 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.