このページでは

QWriteLocker Class

QWriteLocker クラスは、書き込みアクセス用の読み書きロックのロックおよびロック解除を簡略化する便利なクラスです。詳細...

ヘッダー: #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 が 0 の場合、QWriteLocker は何も行いません。

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

[noexcept] QWriteLocker::~QWriteLocker()

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

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

QReadWriteLock *QWriteLocker::readWriteLock() const

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

void QWriteLocker::relock()

ロックが解除されているロックを再ロックします。

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

void QWriteLocker::unlock()

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

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

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.