Wat is het nut van ThreadLocal?
Wat is het nut van ThreadLocal?

Video: Wat is het nut van ThreadLocal?

Video: Wat is het nut van ThreadLocal?
Video: What is the purpose of the class java lang ThreadLocal explain using demo project ? 2024, Mei
Anonim

Java ThreadLocal wordt gebruikt om lokale threadvariabelen te maken. We weten dat alle threads van een object zijn variabelen delen, dus de variabele is niet thread-safe. We kunnen synchronisatie gebruiken voor threadveiligheid, maar als we synchronisatie willen vermijden, kunnen we ThreadLocal-variabelen gebruiken.

Precies, waar wordt de ThreadLocal-klasse voor gebruikt?

Java DiscussieLokale klasse voorziet in thread-local variabelen. Hiermee kunt u variabelen maken die alleen door dezelfde thread kunnen worden gelezen en geschreven. Als twee threads dezelfde code uitvoeren en die code heeft een verwijzing naar a DiscussieLokaal variabele dan kunnen de twee threads de lokale variabele van elkaar niet zien.

Behalve hierboven, waarom is ThreadLocal statisch en definitief? Zoals we kunnen zien, is de statisch instantie van DiscussieLokaal wordt alleen gebruikt als zoeksleutel. De waarde kan niet worden gewijzigd omdat deze is gedeclareerd laatste . De DiscussieLokaal instance is volledig thread-safe omdat het echt alleen-lezen is, dus synchronisatie is niet vereist. Wat mogelijk niet thread-safe is, is het doelobject.

Evenzo kunt u zich afvragen, hoe werkt ThreadLocal in Java?

De Java-threadLokaal class stelt u in staat variabelen te maken die alleen door dezelfde thread kunnen worden gelezen en geschreven. Dus zelfs als twee threads dezelfde code uitvoeren, en de code heeft een verwijzing naar hetzelfde DiscussieLokaal variabele, de twee threads kunnen elkaars niet zien DiscussieLokaal variabelen.

Waarom is ThreadLocal statisch?

Kortom, DiscussieLokaal object werken als een sleutelwaardekaart. statisch laatste DiscussieLokaal variabelen zijn draadveilig. statisch maakt de DiscussieLokaal variabele alleen beschikbaar in meerdere klassen voor de respectieve thread. het is een soort globale variabele decaratie van de respectievelijke draad lokaal variabelen over meerdere klassen.

Aanbevolen: