QWriteLocker 类
QWriteLocker 类是一个便利类,用于简化写访问时对读写锁的锁定和解锁。更多...
头文件 | #include <QWriteLocker> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
- 包括继承成员在内的所有成员列表
- QWriteLocker 是 线程类 的一部分。
注意:此类中所有函数均 线程安全。
公共函数
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 *QWriteLocker::readWriteLock() const
返回到构造函数传递的读写锁的指针。
void QWriteLocker::relock()
重新锁定未解锁的锁。
另请参阅unlock。
void QWriteLocker::unlock()
解锁此锁定器关联的锁定。
© 2024 Qt公司有限公司。此处包含的文档贡献为各自所有者的版权。提供的文档受GNU自由文档许可第1.3版的条款约束,由自由软件基金会发布。Qt及其相关标志为芬兰及全球其他地区的Qt公司商标。所有其他商标均为各自所有者的财产。