std::atomic_notify_one
Определён в заголовочном файле <atomic> | ||
|---|---|---|
template< class T > void atomic_notify_one( std::atomic<T>* object ); | (1) | (начиная с C++20) |
template< class T > void atomic_notify_one( volatile std::atomic<T>* object ); | (2) | (начиная с C++20) |
Выполняет атомарные операции оповещения.
Если существует поток, заблокированный в операции атомарного ожидания (то есть std::atomic_wait(), std::atomic_wait_explicit() или std::atomic::wait()) на объекте *object, то разблокирует как минимум один такой поток; в противном случае ничего не делает.
Эквивалентно object->notify_one().
Параметры
| object | - | указатель на атомарный объект для оповещения |
Возвращаемое значение
(отсутствует)
Примечания
Такой способ обнаружения изменений часто эффективнее простого опроса или использования чистых спин-блокировок.
Пример
См. также
|
(C++20) | оповещает как минимум один поток, ожидающий атомарный объект (открытая функция-член std::atomic<T>) |
|
(C++20) | оповещает все потоки, заблокированные в ожидании атомарного объекта (открытая функция-член std::atomic<T>) |
|
(C++20) | оповещает все потоки, заблокированные в atomic_wait (шаблон функции) |
|
(C++20)(C++20) | блокирует поток до получения оповещения и изменения атомарного значения (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/atomic/atomic_notify_one