Heim > Java > javaLernprogramm > Wann und wie sollte ich ThreadLocal-Variablen in Java verwenden?

Wann und wie sollte ich ThreadLocal-Variablen in Java verwenden?

Mary-Kate Olsen
Freigeben: 2024-12-02 06:32:10
Original
409 Leute haben es durchsucht

When and How Should I Use ThreadLocal Variables in Java?

Wann und wie ThreadLocal-Variablen verwendet werden

ThreadLocal-Variablen bieten einen entscheidenden Mechanismus für die Verwaltung von Thread-Daten in Java-Anwendungen. Hier ist eine ausführliche Untersuchung, wann und wie man sie effektiv einsetzt:

Wann ThreadLocal-Variablen verwendet werden sollten

Ein Schlüsselszenario für die Verwendung von ThreadLocal-Variablen ergibt sich bei der Arbeit mit Nicht-ThreadLocal-Variablen -Thread-sichere Objekte, die Sie innerhalb einzelner Threads isolieren möchten. Dies umgeht die Notwendigkeit eines synchronisierten Zugriffs und bietet verbesserte Leistung und Parallelität.

So verwenden Sie ThreadLocal-Variablen

ThreadLocal-Variablen werden ähnlich wie reguläre Variablen deklariert, jedoch mithilfe von instanziiert ThreadLocal-Klasse. Diese Klasse stellt eine initialValue()-Methode bereit, mit der Sie einen Standardwert für die Variable in jedem Thread festlegen können.

Beispielverwendung

Betrachten Sie das folgende Beispiel:

public class Foo {
    // SimpleDateFormat is not thread-safe, so give one to each thread
    private static final ThreadLocal<SimpleDateFormat> formatter = new ThreadLocal<SimpleDateFormat>() {
        @Override
        protected SimpleDateFormat initialValue() {
            return new SimpleDateFormat("yyyyMMdd HHmm");
        }
    };

    public String formatIt(Date date) {
        return formatter.get().format(date);
    }
}
Nach dem Login kopieren

In diesem Beispiel ist SimpleDateFormat eine nicht threadsichere Klasse. Durch die Verwendung einer ThreadLocal-Variablen erhält jeder Thread seine eigene Instanz von SimpleDateFormat, wodurch Bedenken hinsichtlich der Thread-Sicherheit gemindert werden. Der Aufruf formatter.get() ruft die mit dem aktuellen Thread verknüpfte Instanz ab, sodass Sie Datumsangaben ohne Synchronisierung formatieren können.

Weitere Ressourcen

Für zusätzliche Einblicke in ThreadLocal-Variablen Weitere Informationen finden Sie in der offiziellen Java-Dokumentation: [ThreadLocal Class (Java Platform SE 8)](https://docs.oracle.com/javase/8/docs/api/java/lang/ThreadLocal.html)

Das obige ist der detaillierte Inhalt vonWann und wie sollte ich ThreadLocal-Variablen in Java verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage