Les variables qui peuvent être lues et écrites par le même thread peuvent être créées en utilisant une classe appelée classe ThreadLocal en Java, et donc si le même code est exécuté par les deux threads et que le code fait référence aux variables du même ThreadLocal, les deux threads ne peuvent pas voir ces variables de ThreadLocal et donc un code peut être rendu thread-safe par l'utilisation de la classe ThreadLocal et le code ne serait pas thread-safe sans l'utilisation de la classe ThreadLocal et d'une instance de la classe ThreadLocal. peut être créé comme créer l'instance de n'importe quelle autre classe en Java en utilisant l'opérateur new.
Commencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Comment fonctionne la classe ThreadLocal en Java ?
La variable thread-local est fournie par la classe java.lang.ThreadLocal en Java. Ces variables sont différentes des variables normales de sorte qu'elles sont accessibles à l'aide de la méthode get ou set par chaque thread indépendant, propre et possédant une copie de la variable, qui est initialisée. C'est fondamentalement l'un des autres moyens d'assurer la sécurité du fil en dehors de l'écriture de classes immuables.
Il n'y a plus de partage de l'objet, et donc aucune nécessité de synchronisation grâce à laquelle les performances et l'évolutivité de l'application sont améliorées. La classe ThreadLocal en Java étend l'objet de classe. L'extension de la variable locale, qui est une restriction du thread, est fournie par la classe ThreadLocal en Java. Un seul thread peut afficher le ThreadLocal. Les threads des uns et des autres ne peuvent pas voir les variables ThreadLocal de deux threads. Les variables ThreadLocal appartiennent au champ privé, qui est statique dans les classes, et l'état est maintenu à l'intérieur du thread.
Création de ThreadLocal en Java
L'instance de ThreadLocal est créée de la même manière qu'une instance de tout autre objet Java est créée à l'aide d'un nouvel opérateur. Considérez la syntaxe ci-dessous pour créer un ThreadLocal en Java :
private ThreadLocal variable_name = new ThreadLocal();
La création de ThreadLocal ne doit être effectuée qu'une seule fois pour un thread. Les valeurs peuvent être définies puis obtenues par plusieurs threads à l'intérieur de ce ThreadLocal, et seules les valeurs définies par le thread peuvent être vues par elles-mêmes.
Obtenir la valeur ThreadLocal en Java
La valeur stockée dans ThreadLocal peut être lue à l'aide de sa méthode get(). Considérez la syntaxe ci-dessous pour obtenir une valeur ThreadLocal en Java :
String variable_name = (String) threadLocal.get();
Définir la valeur ThreadLocal en Java
La valeur à stocker dans ThreadLocal après sa création peut être définie à l'aide de la méthode set(). Considérez la syntaxe ci-dessous pour définir une valeur ThreadLocal en Java :
threadLocal.set("value_that_needs_to_be_set");
Supprimez la valeur ThreadLocal en Java.
La valeur définie dans ThreadLocal après sa création peut être supprimée. La valeur ThreadLocal peut être supprimée à l’aide de la méthode ThreadLocal Remove(). Considérez la syntaxe ci-dessous pour supprimer une valeur ThreadLocal définie en Java :
threadLocal.remove();
Exemples d'implémentation de Java ThreadLocal
Vous trouverez ci-dessous des exemples mentionnés :
Exemple n°1
Programme pour démontrer la méthode get() et la méthode set() de la classe ThreadLocal :
Code :
//a class called demo is defined public class Demo { //main method is called public static void main(String[] args) { //an instance of the ThreadLocal is created for a number ThreadLocal<number> local = new ThreadLocal<number>(); //an instance of the ThreadLocal is created for a string ThreadLocal<string> val = new ThreadLocal<string>(); //setting the first number value using set() method local.set(100); //obtaining the current thread's value which returns a number using get() method System.out.println("The number value that was set is = " + local.get()); //setting the second number value using set() method local.set(90); //obtaining the current thread's value which returns a numberusing get() method System.out.println("The number value that was set is = " + local.get()); //setting the first string value using set() method val.set("Welcome to ThreadLocal"); //obtaining the current thread's value which returns a stringusing get() method System.out.println("The string value that was set is = " + val.get()); //setting the second string value using set() method val.set("Learning is fun"); //obtaining the current thread's value which returns a stringusing get() method System.out.println("The string value that was set is = " + val.get()); } }</string></string></number></number>
Sortie :
Explication : Dans le programme ci-dessus, une classe appelée démo est définie. Ensuite, la méthode principale est définie. Ensuite, une instance de ThreadLocal est créée pour un nombre. Ensuite, une instance de ThreadLocal est créée pour une chaîne. Ensuite, la première valeur numérique est définie à l’aide de la méthode set(). Ensuite, la valeur du thread actuel qui renvoie un nombre est obtenue à l'aide de la méthode get(). Ensuite, la deuxième valeur numérique est définie à l'aide de la méthode set(). Ensuite, la valeur du thread actuel qui renvoie un nombre est obtenue à l'aide de la méthode get(). Ensuite, la première valeur de chaîne est définie à l’aide de la méthode set(). Ensuite, la valeur du thread actuel qui renvoie une chaîne est obtenue à l'aide de la méthode get(). Ensuite, la deuxième valeur de chaîne est définie à l’aide de la méthode set(). Ensuite, la valeur du thread actuel qui renvoie une chaîne est obtenue à l'aide de la méthode get(). La sortie du programme est affichée dans l'instantané ci-dessus.
Exemple n°2
Programme Java pour démontrer la méthode Remove() de la classe ThreadLocal :
Code :
//a class called demo is defined public class Demo { //main method is called public static void main(String[] args) { //an instance of the ThreadLocal is created for a number ThreadLocal<number> local = new ThreadLocal<number>(); //an instance of the ThreadLocal is created for a string ThreadLocal<string> val = new ThreadLocal<string>(); //setting the first number value using set() method local.set(100); //obtaining the current thread's value which returns a number using get() method System.out.println("The first number value that was set is = " + local.get()); //setting the second number value using set() method local.set(90); //obtaining the current thread's value which returns a number using get() method System.out.println("The second number value that was set is = " + local.get()); //setting the first string value using set() method val.set("Welcome to ThreadLocal"); //obtaining the current thread's value which returns a string using get() method System.out.println("The first string value that was set is = " + val.get()); //Using remove() method to remove the first string value that was set using set() method val.remove(); //obtaining the current thread's value which returns a string using get() method System.out.println("The first string value after using remove() method is = " + val.get()); //Using remove() method to remove the first number value and second number value that was set using set() method local.remove(); //obtaining the current thread's value using get() method System.out.println("The first number value and second number value after using remove() method is = " + local.get()); } }</string></string></number></number>
Sortie :
Explication : Dans le programme ci-dessus, une classe appelée démo est définie. Ensuite, la méthode principale est définie. Ensuite, une instance de ThreadLocal est créée pour un nombre. Ensuite, une instance de ThreadLocal est créée pour une chaîne. Ensuite, la première valeur numérique est définie à l’aide de la méthode set(). Ensuite, la valeur du thread actuel qui renvoie un nombre est obtenue à l'aide de la méthode get(). Ensuite, la deuxième valeur numérique est définie à l'aide de la méthode set(). Ensuite, la valeur du thread actuel qui renvoie un nombre est obtenue à l'aide de la méthode get(). Ensuite, la première valeur de chaîne est définie à l'aide de la méthode set().
Ensuite, la méthode Remove() est utilisée pour supprimer la première valeur de chaîne définie à l'aide de la méthode set(). Ensuite, la valeur du thread actuel est obtenue à l'aide de la méthode get() et elle renvoie null car nous avons supprimé la valeur définie à l'aide de la méthode Remove(). Ensuite, la méthode Remove() est utilisée pour supprimer la première valeur numérique et la deuxième valeur numérique définies à l'aide de la méthode set(). Ensuite, la valeur du thread actuel est obtenue à l'aide de la méthode get() et renvoie null car nous avons supprimé les valeurs définies à l'aide de la méthode Remove(). La sortie du programme est affichée dans l'instantané ci-dessus.
Avantages de la classe ThreadLocal en Java
- La classe ThreadLocal facilite la tâche de multi-threading car l'état de l'objet n'est pas partagé entre les threads.
- Il n'y a pas besoin de synchronisation puisque l'état de l'objet n'est pas partagé entre les threads.
- ThreadLocal évite l'exposition d'un objet à plusieurs threads.
Conclusion
Dans ce tutoriel, nous comprenons le concept de la classe ThreadLocal à travers la définition, le fonctionnement de la classe ThreadLocal et leurs méthodes à travers des exemples de programmation et leurs sorties.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit