std::atomic_ref<T>::notify_one
来自cppreference.com
< cpp | atomic | atomic ref
并发支持库
|
|
std::atomic_ref
成员函数 | ||||
atomic_ref::notify_one | ||||
(C++26) | ||||
非 bool 算术类型与指向对象指针类型的操作 | ||||
非 bool 整数类型与指向对象指针类型的操作 | ||||
(C++26) | ||||
(C++26) | ||||
非 bool 整数类型的操作 | ||||
常量 | ||||
void notify_one() const noexcept; | (C++26 起为 constexpr) | |
进行原子提醒操作。
如果有线程被 *ptr
上的原子等待操作(即 wait()()
)阻塞,那么解除锁定至少 一个这种线程;否则不做任何事。 此重载只有在 std::is_const_v<T> 是 false 时才会参与重载决议。
注解
这种形式的更改检测通常比简单轮询或纯自旋锁高效。
示例
本节未完成 原因:暂无示例 |
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
LWG 3508 (P3323R1) | C++20 | notify_one 对 const T 无意义 | 受约束以仅接受非 const 的 T |
参阅
阻塞线程直到被提醒且原子值更改 (公开成员函数) | |
(C++20)(C++20) | 阻塞线程直至被提醒且原子值更改 (函数模板) |
(C++20) | 提醒一个在 atomic_wait 中阻塞的线程 (函数模板) |