Каква е ползата от ThreadLocal?
Каква е ползата от ThreadLocal?

Видео: Каква е ползата от ThreadLocal?

Видео: Каква е ползата от ThreadLocal?
Видео: Много сладкого нельзя! - Детская песенка про сладости 2024, Може
Anonim

Java ThreadLocal се използва за създаване на локални променливи на нишката. Знаем, че всички нишки на обект споделят неговите променливи, така че променливата не е нишкова безопасна. Можем да използваме синхронизация за безопасност на нишките, но ако искаме да избегнем синхронизацията, можем да използваме ThreadLocal променливи.

Точно така, за какво се използва клас ThreadLocal?

Java Клас ThreadLocal осигурява нишка локална променливи. Тя ви позволява да създавате променливи, които могат да се четат и записват само от една и съща нишка. Ако две нишки изпълняват един и същ код и този код има препратка към a ThreadLocal променлива, тогава двете нишки не могат да видят локалната променлива една на друга.

Освен това по-горе, защо ThreadLocal е статичен и окончателен? Както виждаме, статичен екземпляр на ThreadLocal се използва само като ключ за търсене. Стойността му не може да бъде променена, защото е декларирана финал . В ThreadLocal екземплярът е напълно безопасен за нишки, защото наистина е само за четене, така че синхронизирането не се изисква. Това, което потенциално не е безопасно за нишки, е целевият обект.

По подобен начин може да попитате как работи ThreadLocal в Java?

В Java ThreadLocal class ви позволява да създавате променливи, които могат да се четат и записват само от една и съща нишка. По този начин, дори ако две нишки изпълняват един и същ код и кодът има препратка към същия ThreadLocal променлива, двете нишки не могат да се виждат взаимно ThreadLocal променливи.

Защо ThreadLocal е статичен?

Накратко, ThreadLocal обектът работи като карта ключ-стойност. статичен финал ThreadLocal променливите са безопасни за нишки. статичен прави ThreadLocal променлива, налична в множество класове само за съответната нишка. това е един вид глобална променлива декарация на съответното локална нишка променливи в множество класове.

Препоръчано: