Énigme de la fonction de veille WinAPI : une veille plus longue que prévu
Lors de l'appel de la fonction de veille WinAPI avec un paramètre de 1, les utilisateurs peuvent rencontrer des retards de thread dépassant la durée prévue. En fait, une série répétée de 100 appels Sleep(1) a donné un temps de sommeil total de 1 500 ms, bien supérieur aux 100 ms stipulés.
Cause du sommeil prolongé :
Ce comportement est inhérent au planificateur de threads Windows. Il fonctionne avec un quantum de temps, ou une période définie pendant laquelle un thread peut s'exécuter. Les retards non nuls sont intrinsèquement arrondis au quantum complet le plus proche.
Problèmes plausibles du système :
Bien que le comportement observé soit typique, il peut être avantageux d'exclure problèmes système potentiels qui pourraient aggraver le problème :
Considérations supplémentaires :
Il est à noter que d'autres programmes en cours d'exécution peuvent ajuster la résolution de la minuterie à l'échelle du système, ce qui pourrait entraîner une taille quantique plus petite. Cela peut expliquer les cas où les délais de veille (1) sont signalés comme se situant dans le délai prévu de 1 ms. La résolution par défaut du minuteur dans Windows 7 devrait être d'environ 15,6 ms et non 1 ms.
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!