QReadLocker Class
QReadLocker 类是一个便利类,可简化为读取访问锁定和解锁读写锁的操作。更多
Header: | #include <QReadLocker> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 所有成员(包括继承成员)的列表
- QReadLocker 属于线程类。
注意:该类中的所有函数都是线程安全的。
公共函数
QReadLocker(QReadWriteLock *lock) | |
~QReadLocker() | |
QReadWriteLock * | readWriteLock() const |
void | relock() |
void | unlock() |
详细说明
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 文档举例说明了锁定器对象的使用大大简化了编程。
另请参阅 QWriteLocker 和QReadWriteLock 。
成员函数文档
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().
© 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.