Namensräume
Varianten
Aktionen

std::launch

Von cppreference.com
< cpp‎ | thread
 
 
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)
launch
(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
Freie Funktionen für atomare Flags
 
Definiert im Header <future>
enum class launch : /* nicht spezifiziert */ {

    async =    /* nicht spezifiziert */,
    deferred = /* nicht spezifiziert */,
    /* implementierungsdefiniert */

};
(seit C++11)

std::launch ist ein BitmaskType. Es spezifiziert die Startrichtlinie für eine Aufgabe, die von der Funktion std::async ausgeführt wird.

[bearbeiten] Konstanten

Die folgenden Konstanten, die einzelne Bits bezeichnen, sind von der Standardbibliothek definiert

Name Erklärung
async die Aufgabe wird in einem anderen Thread ausgeführt, möglicherweise indem sie zuerst erstellt und gestartet wird
deferred die Aufgabe wird im aufrufenden Thread ausgeführt, wenn ihr Ergebnis zum ersten Mal angefordert wird (Lazy Evaluation)

Zusätzlich sind Implementierungen erlaubt,

  • zusätzliche Bits und Bitmasken zu definieren, um Einschränkungen bei der Aufgabeninteraktion zu spezifizieren, die für eine Teilmenge der Startrichtlinien gelten, und
  • diese zusätzlichen Bitmasken für die erste (Standard-)Überladung von std::async zu aktivieren.

[bearbeiten] Fehlerberichte

Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 2102 C++11 std::launch war ein implementierungsdefinierter Typ es ist nicht implementierungsdefiniert

[bearbeiten] Siehe auch

(C++11)
führt eine Funktion asynchron aus (potenziell in einem neuen Thread) und gibt ein std::future zurück, das das Ergebnis enthalten wird
(Funktionsvorlage) [bearbeiten]