Maison >développement back-end >C++ >Pourquoi Windows 10 crée-t-il des threads supplémentaires lors de l'exécution d'un programme simple ?

Pourquoi Windows 10 crée-t-il des threads supplémentaires lors de l'exécution d'un programme simple ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 12:19:291004parcourir

Why Does Windows 10 Create Additional Threads When Running a Simple Program?

Identification de la source des threads supplémentaires dans Windows 10

Malgré la simplicité d'un programme de test avec un seul thread principal, Windows 10 lance de manière inattendue plusieurs threads supplémentaires. Ce problème soulève la question de savoir qui ou comment ces fils de discussion sont initiés.

Identification des fils de discussion

Le débogage > Windows > La fenêtre Threads révèle la présence de ces threads dans ntdll.dll!TppWorkerThread. Il s'agit de threads de pool de threads, comme en témoigne la définition d'un point d'arrêt sur la fonction TppWorkerThread().

Cause première : chargement de la DLL

La trace de pile pour le premier pool de threads thread lorsque le deuxième thread du pool de threads commence à s'exécuter, cela montre que le chargeur appelle le pool de threads pour charger les DLL. Il s'agit d'un changement notable par rapport à Windows 7, où les DLL étaient chargées sans utiliser le pool de threads.

Optimisation de Windows 10

Windows 10 utilise plusieurs cœurs pour accélérer l'initialisation des processus en tirant parti de le pool de threads pour le chargement des DLL. Ce mécanisme de concurrence améliore les performances et n'est pas considéré comme un bug mais plutôt comme une fonctionnalité permettant de tirer parti des capacités matérielles modernes.

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