Maison > Java > javaDidacticiel > le corps du texte

Quels sont les moyens d'implémenter la sécurité des threads en Java

王林
Libérer: 2019-11-27 14:55:05
avant
5485 Les gens l'ont consulté

Quels sont les moyens d'implémenter la sécurité des threads en Java

Pour assurer la sécurité des threads, il faut généralement au moins deux fonctionnalités : Atomicité et Visibilité.

Méthode de mise en œuvre :

1) Utiliser synchronize : Il est atomique et visible, donc si vous utilisez l'opération de synchronisation modifiée, il est livré avec le sexe de visibilité, synchronizedUtiliser des verrous pessimistes pour assurer la sécurité des threads ;

2) Utilisez des classes atomiques au lieu de types de données de base. Les classes atomiques utilisent des verrous optimistes pour assurer la sécurité des threads. Pour exécuter a++ dans un environnement multithread, vous pouvez utiliser AtomicInteger. L'implémentation de la méthode de classe incrementAndGet() utilise également volatile pour garantir la visibilité ; utilisez Unsafe pour appeler la méthode locale native CAS, CAS utilise le verrouillage de bus ou le verrouillage de cache pour garantir l'atomicité ;

Tutoriels vidéo en ligne recommandés : Tutoriels vidéo Java

3) En utilisant le mot-clé volatile, volatile n'a pas nécessairement d'atomicité, comme l'utilisation de variables modifiées par volatile pour effectuer ++ ou - -Opération (num++), nous avons besoin pour que la variable modifiée par volatile doive être atomique, alors nous pouvons généralement la définir sur la variable de type boolean, comme suit :

volatile boolean tag = true;
线程1 while(tag){};
线程2 while(tag){};
Copier après la connexion

S'il y a une variable qui augmente ou diminue, nous avons des classes atomiques ( AtomicInteger) peuvent être utilisés.

4) Utilisez ThreadLocal pour isoler chaque thread ;

5) Nous pouvons également utiliser d'autres verrous, tels que les verrous réentrants (ReentrantLock) pour assurer la sécurité des threads

6) Nous pouvons également utiliser des sections critiques, des mutex et des sémaphores pour garantir la sécurité des threads.

Cet article est recommandé par la rubrique Java Introduction Learning Tout le monde est invité à apprendre et à communiquer ensemble.

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal