113 votes

Quand dois-je vraiment utiliser atomic<bool> au lieu de bool ?

N'est-ce pas ? atomic<bool> redondant car bool est atomique par nature ? Je ne pense pas qu'il soit possible d'avoir une valeur bool partiellement modifiée. Quand ai-je vraiment besoin d'utiliser atomic<bool> au lieu de bool ?

10voto

Haroogan Points 6159

L'atomicité de certains types dépend exclusivement du matériel sous-jacent. Chaque architecture de processeur a des garanties différentes sur l'atomicité de certaines opérations. Par exemple :

Le processeur Intel486 (et les processeurs plus récents depuis) garantit que les opérations mémoire de base suivantes seront toujours exécutées de manière atomique :

  • Lecture ou écriture d'un octet
  • Lecture ou écriture d'un mot aligné sur une frontière de 16 bits
  • Lecture ou écriture d'un double mot aligné sur une frontière de 32 bits

D'autres architectures ont des spécifications différentes sur les opérations qui sont atomiques.

Le C++ est un langage de programmation de haut niveau qui s'efforce de vous abstraire du matériel sous-jacent. Pour cette raison, la norme ne peut tout simplement pas permettre de s'appuyer sur des hypothèses de si bas niveau, car sinon votre application ne serait pas portable. Par conséquent, tous les types primitifs du C++ sont dotés de la fonction atomic contreparties de la bibliothèque standard conforme à la norme C++11 prête à l'emploi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X