C++ 名前付き要件: BasicLockable (C++11 以降)
From cppreference.com
BasicLockable 要件は、実行エージェント(すなわちスレッド)に対して排他的なブロッキングセマンティクスを提供する型の最小限の特性を記述します。
目次 |
[編集] 要件
型 L が BasicLockable であるためには、型 L のオブジェクト m に対して以下の条件を満たす必要があります。
| Expression | 事前条件 | 効果 |
|---|---|---|
| m.lock() | 現在の実行エージェント(スレッド、プロセス、タスク)がロックを取得できるようになるまでブロックします。例外がスローされた場合、ロックは取得されません。 | |
| m.unlock() | 現在の実行エージェントは、m に対して非共有ロックを保持しています。 |
実行エージェントが保持している非共有ロックを解放します。 例外を投げません。 |
[編集]
オブジェクトに対するロックは、lock、try_lock、try_lock_for、または try_lock_until メンバ関数への呼び出しによって取得された場合、非共有ロック と呼ばれます。
[編集] 標準ライブラリ
以下の標準ライブラリ型は BasicLockable 要件を満たします。
| (C++11) |
基本的な相互排他機能を提供する (クラス) |
| (C++11) |
同じスレッドによって再帰的にロックできる相互排他機能を提供する (クラス) |
| (C++11) |
再帰的にロックできる相互排他機能を提供する 同じスレッドによって、タイムアウト付きのロックを実装 (クラス) |
| (C++17) |
共有相互排他機能を提供する (クラス) |
| (C++14) |
共有相互排他機能を提供し、タイムアウト付きのロックを実装する (クラス) |
| (C++11) |
タイムアウト付きのロックを実装した相互排他機能を提供する (クラス) |