QWriteLocker 类

QWriteLocker 类是简化写访问锁定和解锁读写锁的方便类。 更多...

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

注意: 此类的所有函数 thread-safe .

公共函数

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

详细描述

The purpose of QWriteLocker (and 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();
}
					

The QMutexLocker 文档编制展示使用锁定器对象大大简化编程的范例。

另请参阅 QReadLocker and QReadWriteLock .

成员函数文档编制

QWriteLocker:: QWriteLocker ( QReadWriteLock * lock )

构造 QWriteLocker 和锁 lock 为写入。锁将被解锁当 QWriteLocker 被销毁时。若 lock 为 0,QWriteLocker 什么都不做。

另请参阅 QReadWriteLock::lockForWrite ().

[noexcept] QWriteLocker:: ~QWriteLocker ()

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

另请参阅 QReadWriteLock::unlock ().

QReadWriteLock *QWriteLocker:: readWriteLock () const

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

void QWriteLocker:: relock ()

重新锁定被解锁的锁。

另请参阅 unlock ().

void QWriteLocker:: unlock ()

解锁关联此锁定器的锁。

另请参阅 QReadWriteLock::unlock ().