Initialisation thread-safe des variables statiques locales en C 11
Des inquiétudes ont été soulevées concernant l'initialisation thread-safe des variables statiques locales dans C et son évolution à travers différentes normes. Abordons cela spécifiquement dans le contexte de C 11.
Norme C 11
La norme C 11 (et non le projet) dans la section 6.7 précise que :
Par conséquent, en C 11, le thread-safe l'initialisation des variables statiques locales est finalisée.
Compilateurs populaires Implémentation
Principaux compilateurs, tels que :
avoir correctement implémenté le comportement d'initialisation thread-safe requis par la norme C 11. Cela garantit que le constructeur d'une variable statique locale comme lg dans l'exemple ne s'exécutera qu'une seule fois, même dans un environnement multithread.
Considérations supplémentaires
C'est important à noter que l'initialisation thread-safe s'applique uniquement à l'initialisation de la variable elle-même. Les accès ultérieurs à la variable via une référence ne sont pas garantis comme étant thread-safe à moins que des mécanismes de synchronisation supplémentaires ne soient utilisés.
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!