Top-Fragen
Zeitleiste
Chat
Kontext

Thread-local storage

Speicherplatz Aus Wikipedia, der freien Enzyklopädie

Remove ads
Remove ads

Thread-local storage (TLS) ist Speicherplatz, der für jeden Thread eines mehrläufigen Prozesses Daten threadspezifisch speichern kann.[1] Variablen mit dem Attribut TLS erhalten für jeden Thread automatisch eine eigene Instanz. Der Compiler erzeugt weiterhin automatisch Code, der Zugriffe auf genau die dem Thread zugeordnete Kopie des TLS erlaubt. TLS kann dazu dienen, Daten vor unbeabsichtigten Änderungen durch andere Threads zu schützen, oder Race Conditions zu verhindern.

QS-Informatik
Beteilige dich an der Diskussion!
Dieser Artikel wurde wegen inhaltlicher Mängel auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an der Diskussion! (+)

Unter Windows/IA-32 und Windows x86 bzw. x64 z. B. erfolgt der Zugriff über das Segment-Register FS (x86) bzw. GS (x64), das für jeden Thread auf den sogenannten Thread Environment Block verweist.

Codebeispiel für GCC mithilfe des Attributs __thread:[2]

__thread int i;
extern __thread struct state s;
static __thread char *p;

Unter Visual C++ mithilfe des Attributs __declspec(thread):

__declspec(thread) int i;
extern __declspec(thread) struct state s;
static __declspec(thread) char *p;

Seit C++11 existiert für Deklarationen das Schlüsselwort thread_local als einheitliche Alternative zu diesen GCC- bzw. MSVC-Attributen.[3]

TLS ist für die Architekturen IA-32, x86-64, SPARC, SuperH, Alpha und S390 sowie unter ARM-Prozessoren verfügbar.[2][4]

Remove ads

Einzelnachweise

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads