Maison >développement back-end >C++ >Quelles sont les fonctions non réentrantes en C++ ?
Les fonctions non réentrantes sont des fonctions qui ne peuvent pas être appelées par plusieurs threads en même temps. Certaines fonctions de la bibliothèque standard C++ sont non réentrantes, notamment les objets de flux d'entrée/sortie, les fonctions d'heure et de date, les fonctions de traitement du signal et certaines. fonctions mathématiques, fonctions de variables d'environnement, fonctions de système de fichiers. Les fonctions non réentrantes doivent être évitées dans les programmes multithread. Si cela ne peut être évité, des mesures préventives telles que des mutex, des opérations atomiques ou un stockage local au niveau des threads peuvent être prises pour garantir la sécurité des threads.
Fonctions non réentrantes en C++
Que sont les fonctions non réentrantes ?
Les fonctions non réentrantes font référence à des fonctions qui ne peuvent pas être appelées par plusieurs threads en même temps. Si plusieurs threads appellent simultanément une fonction non réentrante, un comportement imprévisible peut en résulter, tel qu'une corruption des données ou un plantage du programme.
Fonctions non réentrantes en C++
Certaines fonctions de la bibliothèque standard C++ sont non réentrantes, notamment :
std::cin
, std::cout, std::cerr
)std::cin
, std::cout
, std::cerr
)std::time
, std::localtime
)std::signal
)std::rand
)std::getenv
)std::ifstream
和 std::ofstream
(std::time
, std :: heure locale
)
(std::signal
)
std::rand
) std::getenv
)
std::ifstream
et std::ofstream
)
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!