Maison > développement back-end > C++ > Pourquoi C n'a-t-il pas de `std::shared_ptr` non atomique ?

Pourquoi C n'a-t-il pas de `std::shared_ptr` non atomique ?

Linda Hamilton
Libérer: 2024-11-01 01:21:02
original
909 Les gens l'ont consulté

 Why Doesn't C   Have a Non-Atomic `std::shared_ptr`?

L'équivalent non atomique de std::shared_ptr et pourquoi il est absent dans

std::shared_ptr a pris de l'importance en tant que le pointeur intelligent de propriété partagée à incrémentation et décrémentation atomique. Cependant, la question se pose de savoir s'il existe un équivalent non atomique.

1. Options alternatives non atomiques

Malgré un examen approfondi de la en-tête, aucun équivalent non atomique de std::shared_ptr n'est facilement accessible. Il existe cependant des solutions hors norme.

2. Pourquoi un std::shared_ptr non atomique n'a pas été inclus dans C 11

L'absence d'une version non atomique dans C 11 découle des discussions tenues lors de la réunion de Rapperswil en 2010.

Raisons contre l'option non atomique :

  • Problèmes potentiels lorsque le code écrit sans atomicité est ensuite utilisé avec des threads, entraînant des problèmes de débogage.
  • L'avantage d'avoir un shared_ptr universel avec un comportement cohérent dans toutes les bibliothèques.
  • L'impact minimal sur les performances de l'atomicité, qui est atténué par des opérations efficaces de construction et d'affectation de déplacement.
  • La disponibilité de partages non atomiques personnalisés pointeurs si nécessaire.

Sur la base de ces arguments, le Language Working Group (LWG) a décidé de ne pas introduire une variante non atomique de shared_ptr en C 11.

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!

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