リードライトロックを実装しています。複数のスレッドが同時にデータを読み、単一のスレッドがデータを書きこむ場合に利用します。
[詳解]
#include "nn/nlib/threading/SharedCriticalSection.h"
|
constexpr | SharedCriticalSection () noexcept=default |
| デフォルトコンストラクタです。
|
|
void | lock_shared () noexcept NLIB_ACQUIRE_SHARED() |
| 読み込みロックを取得しクリティカルセクションに入ります。取得できるまでブロックします。
|
|
bool | try_lock_shared () noexcept NLIB_TRY_ACQUIRE_SHARED(true) |
| 読み込みロックを取得しクリティカルセクションに入ることを試みます。 [詳解]
|
|
bool | try_lock_shared_for (const TimeSpan &timeout) noexcept NLIB_TRY_ACQUIRE_SHARED(true) |
| 読み込みロックを取得しクリティカルセクションに入ることを試みます。タイムアウトします。 [詳解]
|
|
bool | try_lock_shared_until (const DateTime &abstime) noexcept NLIB_TRY_ACQUIRE_SHARED(true) |
| 読み込みロックを取得しクリティカルセクションに入ることを試みます。タイムアウトします。 [詳解]
|
|
void | unlock_shared () noexcept NLIB_RELEASE_SHARED() |
| 読み込みロックを解放します。
|
|
void | lock () noexcept NLIB_ACQUIRE() |
| 書き込みロックを取得しクリティカルセクションに入ります。取得できるまでブロックします。
|
|
bool | try_lock () noexcept NLIB_TRY_ACQUIRE(true) |
| 書き込みロックを取得しクリティカルセクションに入ることを試みます。 [詳解]
|
|
bool | try_lock_for (const TimeSpan &timeout) noexcept NLIB_TRY_ACQUIRE(true) |
| 書き込みロックを取得しクリティカルセクションに入ることを試みます。タイムアウトします。 [詳解]
|
|
bool | try_lock_until (const DateTime &abstime) noexcept NLIB_TRY_ACQUIRE(true) |
| 書き込みロックを取得しクリティカルセクションに入ることを試みます。タイムアウトします。 [詳解]
|
|
void | unlock () noexcept NLIB_RELEASE() |
| 書き込みロックを解放します。
|
|
リードライトロックを実装しています。複数のスレッドが同時にデータを読み、単一のスレッドがデータを書きこむ場合に利用します。
- 説明
- 読み込みスレッド同士は排他する必要がない場合、単純な
CriticalSection
を使うより並列性が高くなります。
- 典型的には以下のようなコードを記述することになります。
m.lock_shared();
.....
m.unlock_shared();
.....
m.lock();
.....
m.unlock();
SharedCriticalSection.h の 25 行目に定義があります。
◆ try_lock()
nn::nlib::threading::SharedCriticalSection::try_lock |
( |
| ) |
|
|
inlinenoexcept |
◆ try_lock_for()
nn::nlib::threading::SharedCriticalSection::try_lock_for |
( |
const TimeSpan & |
timeout | ) |
|
|
inlinenoexcept |
◆ try_lock_shared()
nn::nlib::threading::SharedCriticalSection::try_lock_shared |
( |
| ) |
|
|
inlinenoexcept |
◆ try_lock_shared_for()
nn::nlib::threading::SharedCriticalSection::try_lock_shared_for |
( |
const TimeSpan & |
timeout | ) |
|
|
inlinenoexcept |
◆ try_lock_shared_until()
nn::nlib::threading::SharedCriticalSection::try_lock_shared_until |
( |
const DateTime & |
abstime | ) |
|
|
inlinenoexcept |
◆ try_lock_until()
nn::nlib::threading::SharedCriticalSection::try_lock_until |
( |
const DateTime & |
abstime | ) |
|
|
inlinenoexcept |
このクラス詳解は次のファイルから抽出されました: