QReadLocker
是工具类,它简化了对读写锁,读访问的的锁定和解锁。更多...
属性 | 内容 |
---|---|
头文件 | #include<QReadLocker> |
qmake | QT += core |
注意: 此类中所有函数都是线程安全的。
返回类型 | 函数 |
---|---|
QReadLocker(QReadWrtiteLock *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 文档展示了使用locker对象来大大简化编程的示例。
另请参阅: QWriteLocker、QReadWriteLock。
构造一个 QReadLocker
并锁定用于读取的锁。当 QReadLocker
被销毁时,锁将被解锁。如果 lock == nullptr
,则 QReadLocker
不执行任何操作。
另请参阅: QReadWriteLock::lockForRead()。
销毁 QReadLocker
并解锁传递给构造函数的锁。
另请参阅: QReadWriteLock::unlock()。
返回传递给构造函数的读写锁的指针。
重新锁定。
另请参阅: unlock()。
解锁。
另请参阅: QReadWriteLock::unlock()。
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )