Spec-Zone.ru › Qt 5.6

Класс QWriteLocker

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

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

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

Открытые функции

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

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

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

Класс 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().

QWriteLocker::~QWriteLocker()

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

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

QReadWriteLock *QWriteLocker::readWriteLock() const

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

void QWriteLocker::relock()

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

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

void QWriteLocker::unlock()

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

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

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

Spec-Zone.ru

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