Maison  >  Article  >  développement back-end  >  Pourquoi y a-t-il des threads supplémentaires dans les programmes Simple C sous Windows 10 ?

Pourquoi y a-t-il des threads supplémentaires dans les programmes Simple C sous Windows 10 ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-27 17:59:01121parcourir

Why Are There Extra Threads in Simple C   Programs on Windows 10?

Le pool de threads de Windows 10 en action

Pourquoi Windows 10 introduit-il des threads supplémentaires dans un programme C apparemment simple ? Cette question se pose lorsque l'on compare le comportement d'un tel programme sous Windows 7 et Windows 10. Alors que Windows 7 n'affiche qu'un seul thread dans le débogueur, Windows 10 affiche cinq threads, dont quatre « threads de travail ».

La clé La compréhension de ce phénomène réside dans le rôle du chargeur, ntdll.dll, sous Windows 10. En définissant un point d'arrêt sur la fonction TppWorkerThread(), le point d'entrée des threads du pool de threads, nous pouvons capturer la trace de pile du premier pool de threads. thread en cours de création.

La trace de la pile révèle que le chargeur utilise le pool de threads pour charger les DLL sur Windows 10. Cette concurrence permet à Windows 10 de tirer parti de plusieurs cœurs, ce qui accélère l'initialisation du processus.

Par conséquent, les threads supplémentaires observés dans un simple programme C sous Windows 10 sont un sous-produit des techniques d'optimisation du chargeur. Ce comportement est destiné à améliorer les performances et peut être attribué aux progrès de Windows 10 en matière de gestion des ressources.

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