1. Description
Lorsque plusieurs threads effectuent une opération CAS sur une ressource en même temps, un seul thread réussira, mais il ne bloquera pas les autres threads, et les autres threads recevront uniquement un signal indiquant que l'opération a échoué. On peut voir que CAS est en réalité un verrou optimiste.
2. Exemple
En suivant le code d'AtomInteger, nous pouvons constater que sum.misc.Unsafe est finalement appelé. Regardez le nom Unsafe, c'est une classe non sécurisée qui exploite exactement les bonnes failles dans les règles de classe et de visibilité de Java. Par souci de rapidité, Unsafe fait quelques compromis sur les normes de sécurité de Java.
public final native boolean compareAndSwapInt(Object var1, long var2, int var4, int var5);
Ces méthodes CAS doivent utiliser des méthodes locales. Par conséquent, nous devons rechercher nous-mêmes le code source de jdk pour l’implémentation spécifique de ces méthodes.
1. En tant que représentant du langage de programmation statique orienté objet, le langage Java implémente la théorie orientée objet et permet aux programmeurs d'effectuer une programmation complexe avec une façon de penser élégante.
2.Java présente les caractéristiques de simplicité, d'orientation objet, de distribution, de sécurité, d'indépendance et de portabilité de la plate-forme et de nature dynamique.
3. Utilisez Java pour écrire des applications de bureau, des applications Web, des systèmes distribués et des applications système embarquées, etc.
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!