Namensräume
Varianten
Aktionen

std::atomic_notify_all

Von cppreference.com
< cpp‎ | atomic
 
 
Bibliothek für nebenläufige Programmierung
Threads
(C++11)
(C++20)
this_thread Namespace
(C++11)
(C++11)
(C++11)
Kooperatives Beenden
Gegenseitiger Ausschluss
(C++11)
Allgemeines Sperrungsmanagement
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Bedingungsvariablen
(C++11)
Semaphoren
Latches und Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
Sichere Wiederherstellung
(C++26)
Hazard Pointer
Atomare Typen
(C++11)
(C++20)
Initialisierung von atomaren Typen
(C++11)(veraltet in C++20)
(C++11)(veraltet in C++20)
Speicherordnung
(C++11)(deprecated in C++26)
Freie Funktionen für atomare Operationen
atomic_notify_all
(C++20)
Freie Funktionen für atomare Flags
 
Definiert in Header <atomic>
template< class T >
void atomic_notify_all( std::atomic<T>* object );
(1) (seit C++20)
template< class T >
void atomic_notify_all( volatile std::atomic<T>* object );
(2) (seit C++20)

Führt atomare Benachrichtigungsoperationen durch.

Entsperrt alle Threads, die in atomaren Warteoperationen blockiert sind (d.h. std::atomic_wait(), std::atomic_wait_explicit() oder std::atomic::wait()) auf *object, falls vorhanden; andernfalls geschieht nichts.

Äquivalent zu object->notify_all().

Inhalt

[bearbeiten] Parameter

Objekt - Zeiger auf das atomare Objekt, das benachrichtigt werden soll

[bearbeiten] Rückgabewert

(keine)

[bearbeiten] Hinweise

Diese Form der Änderungsdetektion ist oft effizienter als einfaches Polling oder reine Spinlocks.

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

benachrichtigt mindestens einen Thread, der auf das atomare Objekt wartet
(öffentliche Memberfunktion von std::atomic<T>) [bearbeiten]
benachrichtigt alle Threads, die auf das atomare Objekt warten
(öffentliche Memberfunktion von std::atomic<T>) [bearbeiten]
blockiert den Thread, bis er benachrichtigt wird und der atomare Wert sich ändert
(Funktions-Template) [bearbeiten]
benachrichtigt einen Thread, der in atomic_wait blockiert ist
(Funktions-Template) [bearbeiten]