Wozu dient ThreadLocal?
Wozu dient ThreadLocal?

Video: Wozu dient ThreadLocal?

Video: Wozu dient ThreadLocal?
Video: Wozu dient eigentlich der US-Vizepräsident? | ARTE 2024, Dezember
Anonim

Java ThreadLocal wird verwendet, um lokale Thread-Variablen zu erstellen. Wir wissen, dass alle Threads eines Objekts seine Variablen teilen, daher ist die Variable nicht threadsicher. Wir können die Synchronisation für die Thread-Sicherheit verwenden, aber wenn wir die Synchronisation vermeiden möchten, können wir ThreadLocal-Variablen verwenden.

Also, wofür wird die ThreadLocal-Klasse verwendet?

Java ThreadLocal-Klasse bietet Thread-lokal Variablen. Es ermöglicht Ihnen, Variablen zu erstellen, die nur von demselben Thread gelesen und geschrieben werden können. Wenn zwei Threads denselben Code ausführen und dieser Code einen Verweis auf a. hat ThreadLokal Variable, dann können die beiden Threads die lokale Variable des anderen nicht sehen.

Abgesehen davon, warum ist ThreadLocal statisch und endgültig? Wie wir sehen können, ist die statisch Instanz von ThreadLokal wird nur als Suchschlüssel verwendet. Sein Wert kann nicht geändert werden, da er deklariert ist Finale . Die ThreadLokal -Instanz ist völlig Thread-sicher, da sie wirklich schreibgeschützt ist, sodass die Synchronisierung nicht angefordert wird. Was potenziell nicht threadsicher ist, ist das Zielobjekt.

In ähnlicher Weise können Sie sich fragen, wie ThreadLocal in Java funktioniert.

Die Java ThreadLocal -Klasse können Sie Variablen erstellen, die nur von demselben Thread gelesen und geschrieben werden können. Selbst wenn zwei Threads denselben Code ausführen und der Code eine Referenz auf denselben hat ThreadLokal variabel, die beiden Threads können sich nicht gegenseitig sehen ThreadLokal Variablen.

Warum ist ThreadLocal statisch?

Zusamenfassend, ThreadLokal -Objekt funktioniert wie eine Schlüssel-Wert-Zuordnung. statisch Finale ThreadLokal Variablen sind Thread-sicher. statisch macht das ThreadLokal Variable, die über mehrere Klassen hinweg nur für den jeweiligen Thread verfügbar ist. es ist eine Art globale Variable Dekaration des jeweiligen Thread lokal Variablen über mehrere Klassen hinweg.

Empfohlen: