std:: condition_variable_any
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ヘッダーで定義
<condition_variable>
|
||
|
class
condition_variable_any
;
|
(C++11 以降) | |
condition_variable_any
クラスは
std::condition_variable
の一般化です。
std::condition_variable
が
std::
unique_lock
<
std::
mutex
>
でのみ動作するのに対し、
condition_variable_any
は
BasicLockable
要件を満たす任意のロックで動作できます。
条件変数の意味論の説明については std::condition_variable を参照してください。
クラス
std::condition_variable_any
は
StandardLayoutType
です。これは
CopyConstructible
、
MoveConstructible
、
CopyAssignable
、または
MoveAssignable
ではありません。
ロックが std:: unique_lock < std:: mutex > の場合、 std::condition_variable はより優れたパフォーマンスを提供する可能性があります。
目次 |
メンバー関数
|
オブジェクトを構築する
(public member function) |
|
|
オブジェクトを破棄する
(public member function) |
|
|
operator=
[deleted]
|
コピー代入不可
(public member function) |
通知 |
|
|
待機中の1つのスレッドに通知する
(public member function) |
|
|
待機中の全てのスレッドに通知する
(public member function) |
|
待機 |
|
|
条件変数が通知されるまで現在のスレッドをブロックする
(public member function) |
|
|
条件変数が通知されるか、指定されたタイムアウト時間が経過するまで現在のスレッドをブロックする
(public member function) |
|
|
条件変数が通知されるか、指定された時刻に達するまで現在のスレッドをブロックする
(public member function) |
|
注記
std::condition_variable_any
は
std::shared_lock
と共に使用することで、共有所有権モードの
std::shared_mutex
を待機するために利用できます。
std::condition_variable_any
の使用例として、カスタム
Lockable
型を用いた割り込み可能な待機処理が挙げられます:カスタムロック操作は、関連付けられたミューテックスのロックを通常通り行うと同時に、割り込みシグナル受信時にこの条件変数へ通知するための必要な設定も実行します。
[1]
関連項目
|
(C++11)
|
std::unique_lock
に関連付けられた条件変数を提供する
(class) |
外部リンク
|