std::atomic_ref<T>:: notify_all
From cppreference.net
<
cpp
|
atomic
|
atomic ref
C++
Concurrency support library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::atomic_ref
| Member functions | ||||
|
atomic_ref::notify_all
|
||||
|
(C++26)
|
||||
|
Operations for arithmetic types
(except
bool
and pointer-to-object)
|
||||
|
Operations for integral types
(except
bool
and pointer-to-object)
|
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
|
Operations for integral types
(except
bool
)
|
||||
| Constants | ||||
|
void
notify_all
(
)
const
noexcept
;
|
(自 C++26 起为 constexpr) | |
执行原子通知操作。
解除所有在
*
ptr
上因原子等待操作(即
wait()
)而阻塞的线程(如果存在);否则不执行任何操作。
此重载仅当
std::
is_const_v
<
T
>
为
false
时参与重载决议。
目录 |
注释
这种形式的变更检测通常比简单轮询或纯自旋锁更高效。
示例
|
本节内容不完整
原因:缺少示例 |
缺陷报告
下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
| 缺陷报告 | 应用于 | 发布时的行为 | 正确行为 |
|---|---|---|---|
|
LWG 3508
( P3323R1 ) |
C++20 |
notify_all
对于
const
T
无意义
|
约束为仅接受非 const
T
|
参见
|
阻塞线程直至被通知且原子值发生变化
(公开成员函数) |
|
|
(C++20)
(C++20)
|
阻塞线程直至被通知且原子值发生变化
(函数模板) |
|
(C++20)
|
通知阻塞在 atomic_wait 的线程
(函数模板) |