Jaki jest pożytek z ThreadLocal?
Jaki jest pożytek z ThreadLocal?

Wideo: Jaki jest pożytek z ThreadLocal?

Wideo: Jaki jest pożytek z ThreadLocal?
Wideo: What is the purpose of the class java lang ThreadLocal explain using demo project ? 2024, Grudzień
Anonim

Jawa ThreadLocal służy do tworzenia lokalnych zmiennych wątków. Wiemy, że wszystkie wątki obiektu współdzielą jego zmienne, więc zmienna nie jest bezpieczna wątkowo. Możemy użyć synchronizacji dla bezpieczeństwa wątków, ale jeśli chcemy uniknąć synchronizacji, możemy użyć zmiennych ThreadLocal.

Do czego służy klasa ThreadLocal?

Jawa Klasa ThreadLocal zapewnia lokalny wątku zmienne. Umożliwia tworzenie zmiennych, które mogą być odczytywane i zapisywane tylko przez ten sam wątek. Jeśli dwa wątki wykonują ten sam kod i ten kod ma odniesienie do a WątekLokalny zmienna wtedy dwa wątki nie widzą swojej zmiennej lokalnej.

Poza powyższym, dlaczego ThreadLocal jest statyczne i ostateczne? Jak widać, statyczny wystąpienie WątekLokalny jest używany tylko jako klucz wyszukiwania. Jego wartość nie może zostać zmieniona, ponieważ jest zadeklarowana finał . ten WątekLokalny instancja jest całkowicie bezpieczna dla wątków, ponieważ jest naprawdę tylko do odczytu, więc synchronizacja nie jest wymagana. To, co potencjalnie nie jest bezpieczne dla wątków, to obiekt docelowy.

Podobnie możesz zapytać, jak działa ThreadLocal w Javie?

ten Java ThreadLocal class umożliwia tworzenie zmiennych, które mogą być odczytywane i zapisywane tylko przez ten sam wątek. Tak więc, nawet jeśli dwa wątki wykonują ten sam kod, a kod ma odniesienie do tego samego WątekLokalny zmienna, dwa wątki nie widzą się nawzajem WątekLokalny zmienne.

Dlaczego ThreadLocal jest statyczne?

W skrócie, WątekLokalny obiekt działa jak mapa klucz-wartość. statyczny finał WątekLokalny zmienne są bezpieczne wątkowo. statyczny sprawia, że WątekLokalny zmienna dostępna w wielu klasach tylko dla odpowiedniego wątku. jest to rodzaj dekaracji zmiennej globalnej odpowiedniego lokalny wątek zmienne w wielu klasach.

Zalecana: