Qual è l'uso di ThreadLocal?
Qual è l'uso di ThreadLocal?

Video: Qual è l'uso di ThreadLocal?

Video: Qual è l'uso di ThreadLocal?
Video: Java 20 - From ThreadLocal to ScopedValue with Loom Full Tutorial - JEP Café #16 2024, Novembre
Anonim

Giava ThreadLocal viene utilizzato per creare variabili locali del thread. Sappiamo che tutti i thread di un oggetto condividono le sue variabili, quindi la variabile non è thread-safe. Possiamo usare la sincronizzazione per la sicurezza dei thread, ma se vogliamo evitare la sincronizzazione, possiamo usare le variabili ThreadLocal.

Proprio così, a cosa serve la classe ThreadLocal?

Giava Classe ThreadLocal fornisce thread-local variabili. Ti consente di creare variabili che possono essere lette e scritte solo dallo stesso thread. Se due thread stanno eseguendo lo stesso codice e quel codice ha un riferimento a a ThreadLocal variabile quindi i due thread non possono vedere la variabile locale l'uno dell'altro.

Oltre a sopra, perché ThreadLocal è statico e definitivo? Come possiamo vedere, il statico istanza di ThreadLocal viene utilizzato solo come chiave di ricerca. Il suo valore non può essere modificato perché dichiarato finale . Il ThreadLocal l'istanza è totalmente thread-safe perché è di sola lettura, quindi la sincronizzazione non è richiesta. Ciò che potenzialmente non è thread-safe è l'oggetto di destinazione.

Allo stesso modo, potresti chiedere, come funziona ThreadLocal in Java?

Il Java ThreadLocal class consente di creare variabili che possono essere lette e scritte solo dallo stesso thread. Quindi, anche se due thread stanno eseguendo lo stesso codice e il codice ha un riferimento allo stesso ThreadLocal variabile, i due thread non possono vedersi l'un l'altro ThreadLocal variabili.

Perché ThreadLocal è statico?

In breve, ThreadLocal l'oggetto funziona come una mappa chiave-valore. statico finale ThreadLocal le variabili sono thread-safe. statico fa il ThreadLocal variabile disponibile in più classi solo per il rispettivo thread. è una sorta di decarazione delle variabili globali delle rispettive thread locale variabili tra più classi.

Consigliato: