Thread-Speicherdauer
Von cppreference.com
Ein Objekt, dessen Bezeichner mit dem Speicherdauer-Spezifizierer _Thread_local (seit C11) deklariert ist, hat Thread-Speicherdauer. Seine Lebensdauer ist die gesamte Ausführung des Threads, für den es erstellt wird, und sein gespeicherter Wert wird initialisiert, wenn der Thread gestartet wird. Es gibt ein separates Objekt pro Thread, und die Verwendung des deklarierten Namens in einem Ausdruck bezieht sich auf das Objekt, das mit dem Thread assoziiert ist, der den Ausdruck auswertet. Das Ergebnis des Versuchs, indirekt auf ein Objekt mit Thread-Speicherdauer von einem anderen Thread als dem zuzugreifen, mit dem das Objekt assoziiert ist, ist implementierungsabhängig.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
const double PI = 3.14159; /* const variable is global to all threads */ _Thread_local unsigned int seed; /* seed is a thread-specific variable */ int main(void) { return 0; }
Mögliche Ausgabe
(none)