QReadLocker Class

QReadLockerクラスは、読み取りアクセスのための読み書きロックのロックと解除を簡素化する便利なクラスです。詳細...

Header: #include <QReadLocker>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

注意:このクラスの関数はすべてスレッドセーフです。

パブリック関数

QReadLocker(QReadWriteLock *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 ドキュメントでは、ロッカー・オブジェクトの使用によってプログラミングが大幅に簡素化される例を示しています。

QWriteLocker およびQReadWriteLockも参照して ください。

メンバ関数のドキュメント

QReadLocker::QReadLocker(QReadWriteLock *lock)

QReadLocker を構築し、lock を読み込み用にロックします。ロックはQReadLockerが破棄されると解除されます。lock がゼロの場合、QReadLocker は何もしない。

QReadWriteLock::lockForRead()も参照

[noexcept] QReadLocker::~QReadLocker()

QReadLocker を破棄し、コンストラクタに渡されたロックのロックを解除します。

QReadWriteLock::unlock()も参照

QReadWriteLock *QReadLocker::readWriteLock() const

コンストラクタに渡された読み書きロックへのポインタを返します。

void QReadLocker::relock()

ロックされていないロックを再ロックします。

unlock()も参照

void QReadLocker::unlock()

このロッカーに関連付けられたロックを解除します。

QReadWriteLock::unlock() も参照して ください。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。