QReadLocker 类
QReadLocker 类是一个便利类,用于简化对读-写锁的自读访问的锁定和解锁。 更多...
头文件 | #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。
© 2024 Qt公司有限公司。此处包含的文档贡献版权属于其各自所有者。本文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3进行许可。Qt及其相关标志是芬兰以及/或其他国家和地区Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。