Ich wollte die c ++ 11 thread_local
verwenden, um die Variable thread_local zu erstellen und zu verwenden, aber da sie noch nicht von gcc unterstützt wird, verwende ich gcc specific __thread
. Die Art, wie ich die Variable deklariert habe, ist
Wenn ich es kompiliere, erhalte ich einen Fehler wie
%Vor%Wie man es richtig macht?
PS: gcc-Version: 4.6.3
Sie müssen die faule Initialisierung verwenden.
%Vor% m_minIntInitialized
ist garantiert null.
In den meisten Fällen ( ELF-Spezifikation ) wird es in den Abschnitt .tbss gestellt, der auf Null initialisiert ist.
Für C ++ - Ссылка
Für alle anderen nicht lokalen statischen und threadlokalen Variablen Null Initialisierung findet statt. In der Praxis, Variablen, die gehen Null-initialisiert werden, werden in das .bss-Segment des Programms gestellt Bild, das keinen Speicherplatz auf der Festplatte belegt und vom Betriebssystem auf Null gesetzt wird beim Laden des Programms.
Tags und Links c++ multithreading gcc thread-local thread-local-storage