Maison  >  Article  >  développement back-end  >  MinGW-w64 avec le modèle de thread Win32 prend-il en charge std::thread de manière native ?

MinGW-w64 avec le modèle de thread Win32 prend-il en charge std::thread de manière native ?

DDD
DDDoriginal
2024-10-31 23:46:29304parcourir

Does MinGW-w64 with the Win32 threading model support std::thread natively?

MinGW-w64 prend-il nativement en charge std::thread avec le modèle de thread Win32 ?

Lors de l'utilisation de la chaîne d'outils MinGW-w64, sélectionnez Win32 Le modèle de threading peut soulever des inquiétudes quant à la disponibilité de la prise en charge des threads C 11.

Au départ, on pensait que std::thread pouvait être utilisé quel que soit le modèle de thread sur la base des déclarations précédentes. Cependant, cette hypothèse s'est avérée incorrecte.

Malgré l'invocation de g avec -std=c 11, std::thread n'est toujours pas pris en charge. Les options pour concilier cet écart sont :

  • Désinformation : l'hypothèse initiale selon laquelle les threads C 11 fonctionneraient avec le modèle de thread Win32 était incorrecte.
  • Malentendu : malgré les demandes de renseignements, ce n'est toujours pas clair. si la prise en charge de std::thread existe dans ce scénario.
  • Support mais avec une implémentation inattendue : std::thread peut être pris en charge mais pas de manière intuitive.

Cependant, le " La qualification "prêt à l'emploi" dans la question exclut les options tierces telles que mingw-std-threads.

Support natif std::thread

Depuis mai 2016, La prise en charge native de std::thread dans MinGW-w64 avec le modèle de thread Win32 est obtenue en installant les en-têtes mingw-std-threads.

En effet, MinGW-w64 ne prend pas en charge les threads natifs comme les autres installations GCC qui implémentent le threading. via gthreads ou pthreads. MinGW-w64 n'a pas non plus de port glibc mais utilise le runtime MSVC et son propre code pour remplir les composants manquants.

Les versions récentes de MinGW-w64 incluent un port Win32 de pthreads ("winpthreads"), ce qui explique pourquoi la sélection le modèle "pthread" lors de l'installation active les threads.

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:
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