1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/cryfeifei-QtDocumentCN

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
QReadLocker.md 2.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Ryan-rlm Отправлено 06.09.2020 07:26 2d5c06f

QReadLocker

  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对象来大大简化编程的示例。

另请参阅: QWriteLockerQReadWriteLock

成员函数文档

QReadLocker::QReadLocker(QReadWriteLock *lock)

  构造一个 QReadLocker 并锁定用于读取的锁。当 QReadLocker 被销毁时,锁将被解锁。如果 lock == nullptr,则 QReadLocker 不执行任何操作。

另请参阅: QReadWriteLock::lockForRead()。


QReadLocker::~QReadLocker()

  销毁 QReadLocker 并解锁传递给构造函数的锁。

另请参阅: QReadWriteLock::unlock()。


QReadWriteLock *QReadLocker::readWriteLock() const

  返回传递给构造函数的读写锁的指针。


void QReadLocker::relock()

  重新锁定。

另请参阅: unlock()。


void QReadLocker::unlock()

  解锁。

另请参阅: QReadWriteLock::unlock()。

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/cryfeifei-QtDocumentCN.git
git@api.gitlife.ru:oschina-mirror/cryfeifei-QtDocumentCN.git
oschina-mirror
cryfeifei-QtDocumentCN
cryfeifei-QtDocumentCN
master