Spec-Zone.ru › Qt 5.12

Класс QReadLocker

Класс QReadLocker — это вспомогательный класс, упрощающий блокировку и разблокировку блокировок чтения-записи для чтения. Подробнее...

Заголовок: #include <QReadLocker>
qmake: QT += core
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются безопасными для потоков.

Общедоступные функции

QReadLocker(QReadWriteLock *lock)
~QReadLocker()
QReadWriteLock * readWriteLock() const
void relock()
void unlock()

Подробное описание

Класс QReadLocker — это вспомогательный класс, упрощающий блокировку и разблокировку блокировок чтения-записи для чтения.

Цель 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().

QReadLocker::~QReadLocker()

Уничтожает QReadLocker и разблокирует блокировку, которая была передана в конструктор.

См. также QReadWriteLock::unlock().

QReadWriteLock *QReadLocker::readWriteLock() const

Возвращает указатель на блокировку чтения-записи, которая была передана в конструктор.

void QReadLocker::relock()

Переблокирует разблокированную блокировку.

См. также unlock().

void QReadLocker::unlock()

Разблокирует блокировку, связанную с этим замочным классом.

См. также QReadWriteLock::unlock().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qreadlocker.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API