std:: thread
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definiert in Header
<thread>
|
||
|
class
thread
;
|
(seit C++11) | |
Die Klasse
thread
repräsentiert
einen einzelnen Ausführungsstrang
. Threads ermöglichen die gleichzeitige Ausführung mehrerer Funktionen.
Threads beginnen die Ausführung unmittelbar nach der Konstruktion des zugehörigen Thread-Objekts (vorbehaltlich eventueller Betriebssystem-Scheduling-Verzögerungen), beginnend mit der Top-Level-Funktion, die als Konstruktorargument bereitgestellt wird. Der Rückgabewert der Top-Level-Funktion wird ignoriert, und wenn sie durch Auslösen einer Exception endet, wird std::terminate aufgerufen. Die Top-Level-Funktion kann ihren Rückgabewert oder eine Exception an den Aufrufer über std::promise oder durch Modifizieren gemeinsamer Variablen kommunizieren (was Synchronisation erfordern kann, siehe std::mutex und std::atomic ).
std::thread
Objekte können sich auch in einem Zustand befinden, der keinen Thread repräsentiert (nach Default-Konstruktion, Move-Operation,
detach
, oder
join
), und ein Ausführungs-Thread kann keinem
thread
Objekt zugeordnet sein (nach
detach
).
Keine zwei
std::thread
Objekte dürfen denselben Ausführungsstrang repräsentieren;
std::thread
ist nicht
CopyConstructible
oder
CopyAssignable
, obwohl es
MoveConstructible
und
MoveAssignable
ist.
Inhaltsverzeichnis |
Mitgliedertypen
| Mitgliedertyp | Definition |
native_handle_type
(
optional*
)
|
implementierungsdefiniert |
Mitgliedsklassen
|
repräsentiert die
ID
eines Threads
(öffentliche Member-Klasse) |
Memberfunktionen
Konstruiert neues
thread
-Objekt
(öffentliche Elementfunktion) |
|
|
zerstört das Thread-Objekt, zugrundeliegender Thread muss gejoined oder detached sein
(öffentliche Elementfunktion) |
|
|
verschiebt das Thread-Objekt
(öffentliche Elementfunktion) |
|
Beobachter |
|
|
prüft ob der Thread joinable ist, d.h. potentiell in parallelem Kontext läuft
(öffentliche Elementfunktion) |
|
|
gibt die
id
des Threads zurück
(öffentliche Elementfunktion) |
|
|
gibt das zugrundeliegende implementierungsdefinierte Thread-Handle zurück
(öffentliche Elementfunktion) |
|
|
[static]
|
gibt die Anzahl der durch die Implementierung unterstützten nebenläufigen Threads zurück
(öffentliche statische Elementfunktion) |
Operationen |
|
|
wartet auf das Beenden der Thread-Ausführung
(öffentliche Elementfunktion) |
|
|
erlaubt dem Thread die unabhängige Ausführung vom Thread-Handle
(öffentliche Elementfunktion) |
|
|
tauscht zwei Thread-Objekte
(öffentliche Elementfunktion) |
|
Nicht-Member-Funktionen
|
(C++11)
|
spezialisiert den
std::swap
Algorithmus
(Funktion) |
Siehe auch
|
(C++20)
|
std::thread
mit Unterstützung für automatisches Join und Abbruch
(Klasse) |