Ποια είναι η χρήση του ThreadLocal;
Ποια είναι η χρήση του ThreadLocal;

Βίντεο: Ποια είναι η χρήση του ThreadLocal;

Βίντεο: Ποια είναι η χρήση του ThreadLocal;
Βίντεο: Python Threading Tutorial: Run Code Concurrently Using the Threading Module 2024, Ενδέχεται
Anonim

Ιάβα Το ThreadLocal χρησιμοποιείται για τη δημιουργία τοπικών μεταβλητών νήματος. Γνωρίζουμε ότι όλα τα νήματα ενός Αντικειμένου μοιράζονται τις μεταβλητές του, επομένως η μεταβλητή δεν είναι ασφαλής σε νήματα. Μπορούμε να χρησιμοποιήσουμε το συγχρονισμό για ασφάλεια νημάτων, αλλά αν θέλουμε να αποφύγουμε το συγχρονισμό, μπορούμε να χρησιμοποιήσουμε μεταβλητές ThreadLocal.

Έτσι, σε τι χρησιμοποιείται η κλάση ThreadLocal;

Ιάβα Κλάση ThreadLocal παρέχει νήμα-τοπικό μεταβλητές. Σας δίνει τη δυνατότητα να δημιουργήσετε μεταβλητές που μπορούν να διαβαστούν και να γραφτούν μόνο από το ίδιο νήμα. Εάν δύο νήματα εκτελούν τον ίδιο κώδικα και αυτός ο κώδικας έχει μια αναφορά σε a ThreadLocal μεταβλητή τότε τα δύο νήματα δεν μπορούν να δουν την τοπική μεταβλητή μεταξύ τους.

Εκτός από τα παραπάνω, γιατί το ThreadLocal είναι στατικό και τελικό; Όπως μπορούμε να δούμε, το στατικός παράδειγμα του ThreadLocal χρησιμοποιείται μόνο ως κλειδί αναζήτησης. Η τιμή του δεν μπορεί να αλλάξει επειδή έχει δηλωθεί τελικός . ο ThreadLocal Το παράδειγμα είναι απολύτως ασφαλές για το νήμα επειδή είναι πραγματικά μόνο για ανάγνωση, επομένως ο συγχρονισμός δεν απαιτείται. Αυτό που δυνητικά δεν είναι ασφαλές ως προς το νήμα είναι το αντικείμενο στόχος.

Ομοίως, μπορείτε να ρωτήσετε πώς λειτουργεί το ThreadLocal στην Java;

ο Java ThreadLocal class σάς δίνει τη δυνατότητα να δημιουργήσετε μεταβλητές που μπορούν να διαβαστούν και να γραφτούν μόνο από το ίδιο νήμα. Έτσι, ακόμα κι αν δύο νήματα εκτελούν τον ίδιο κώδικα και ο κώδικας έχει αναφορά στον ίδιο ThreadLocal μεταβλητή, τα δύο νήματα δεν μπορούν να δουν το ένα του άλλου ThreadLocal μεταβλητές.

Γιατί το ThreadLocal είναι στατικό;

Εν συντομία, ThreadLocal το αντικείμενο λειτουργεί σαν χάρτης κλειδιού-τιμής. στατικός τελικός ThreadLocal Οι μεταβλητές είναι ασφαλείς για νήματα. στατικός κάνει το ThreadLocal μεταβλητή διαθέσιμη σε πολλές κλάσεις μόνο για το αντίστοιχο νήμα. είναι ένα είδος καθολικής μεταβλητής decaration της αντίστοιχης τοπικό νήμα μεταβλητές σε πολλές κλάσεις.

Συνιστάται: