QWriteLocker Class

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

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

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

パブリック関数

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

詳細説明

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()も参照のこと

[noexcept] QWriteLocker::~QWriteLocker()

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

QReadWriteLock::unlock()も参照

QReadWriteLock *QWriteLocker::readWriteLock() const

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

void QWriteLocker::relock()

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

unlock()も参照

void QWriteLocker::unlock()

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

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

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