Maison > développement back-end > C++ > Les lectures et écritures d'entiers C sont-elles toujours atomiques ?

Les lectures et écritures d'entiers C sont-elles toujours atomiques ?

DDD
Libérer: 2024-11-30 09:00:18
original
669 Les gens l'ont consulté

Are C   Integer Reads and Writes Always Atomic?

Les lectures et écritures C d'un int sont-elles atomiques ?

La question concerne l'atomicité des opérations de lecture et d'écriture d'entiers en C . L'atomicité garantit que l'opération se déroule comme une seule unité indivisible, garantissant qu'aucune interruption ne se produit pendant le processus.

La réponse à cette question dépend de l'architecture du système. Sur les processeurs tels que IA32, les écritures alignées sur les entiers sont généralement atomiques. Cependant, les écritures non alignées peuvent ne pas être atomiques selon le système de mise en cache utilisé. Si la mémoire réside dans une seule ligne de cache, l'atomicité est conservée ; sinon, ce n'est pas le cas.

De plus, la largeur du bus entre le CPU et la RAM peut influencer l'atomicité. Dans le cas des processeurs plus anciens comme le 8086 avec un bus 16 bits, les écritures alignées sur 16 bits étaient atomiques, alors que le même fonctionnement n'était pas garanti sur le 8088 avec un bus 8 bits.

Pour C/ Dans les programmes C, il est crucial de déclarer les valeurs partagées comme volatiles. Cela empêche l'optimiseur de supposer que la variable ne sera pas modifiée dans un thread, garantissant ainsi que la valeur réelle est toujours lue.

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