Maison > Java > javaDidacticiel > Pourquoi n'est-ce pas Atomic en Java ?

Pourquoi n'est-ce pas Atomic en Java ?

Linda Hamilton
Libérer: 2024-11-25 11:01:11
original
215 Les gens l'ont consulté

Why Isn't i   Atomic in Java?

Pourquoi je ne suis pas atomique en Java ?

En Java, l'opérateur i n'est pas atomique pour des raisons d'efficacité. L'atomicité, bien que souhaitable, entraîne une surcharge importante en matière de synchronisation logicielle et matérielle.

En rendant i non atomique, Java optimise l'exécution du code, évitant ainsi les coûts de synchronisation inutiles. Il est important de noter que dans la plupart des cas, l'atomicité n'est pas cruciale pour les opérations i.

De plus, la préservation de la compatibilité de Java avec C et C a joué un rôle dans cette décision de conception. L'atomicité aurait introduit une divergence dans la syntaxe et la sémantique, ce qui aurait pu dérouter les programmeurs passant des langages de type C à Java.

De plus, même au niveau des instructions machine, les opérations d'incrémentation atomique entraînent souvent des pénalités de performances. Sur l'architecture x86, un "préfixe de verrouillage" spécial est requis pour rendre l'instruction inc atomique. Ce coût ralentirait considérablement les incréments non atomiques, entraînant une surcharge inutile.

Certaines architectures de jeu d'instructions, telles que MIPS, n'ont pas du tout d'opérations d'incrémentation atomique natives. Dans de tels cas, les incréments atomiques nécessitent des boucles logicielles complexes utilisant des instructions liées à la charge (ll) et conditionnelles au stockage (sc) pour garantir la cohérence des données.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal