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!