QWriteLocker
QWriteLocker
是工具类,它简化了对读写锁,写访问的的锁定和解锁。更多…
属性 | 内容 |
---|---|
头文件 | #include<QWriteLocker> |
qmake | QT += core |
注意: 此类中所有函数都是线程安全的。
公共成员函数
返回类型 | 函数 |
---|---|
QWriteLocker(QReadWrtiteLock *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 文档展示了使用locker对象来大大简化编程的示例。
另请参阅: QReadLocker、QReadWriteLock。
成员函数文档
QWriteLocker::QWriteLocker(QReadWriteLock *lock)
构造一个 QWriteLocker
并锁定用于写入的锁。当 QWriteLocker
被销毁时,锁将被解锁。如果 lock == nullptr
,则 QWriteLocker
不执行任何操作。
另请参阅: QReadWriteLock::lockForWrite()。
QWriteLocker::~QWriteLocker()
销毁 QWriteLocker
并解锁传递给构造函数的锁。
另请参阅: QReadWriteLock::unlock()。
QReadWriteLock *QWriteLocker::readWriteLock() const
返回传递给构造函数的读写锁的指针。
void QWriteLocker::relock()
重新锁定。
另请参阅: unlock()。
void QWriteLocker::unlock()
解锁。
另请参阅: QReadWriteLock::unlock()。