Soirée pyjama : atteindre une veille inférieure à la milliseconde sous Windows
En développant le sujet de la granularité de la veille des threads, abordons le problème spécifique de la mise en veille des threads. moins d'une milliseconde sur la plateforme Windows.
Problème Déclaration
Alors qu'Unix offre une variété de fonctions de veille (sleep, usleep, nanosleep) qui permettent une précision à la microseconde, Windows ne fournit Sleep() qu'avec une granularité en millisecondes. Cela soulève la question : comment pouvons-nous atteindre une veille inférieure à la milliseconde sous Windows ?
Briser les idées fausses
Il est important de clarifier une idée fausse courante concernant les paramètres de la fonction de veille. La valeur temporelle transmise ne garantit pas une heure de réveil exacte. Au lieu de cela, il spécifie la durée minimale du sommeil. Les threads ne sont pas réveillés directement ; c'est plutôt le planificateur du système d'exploitation qui détermine quand les exécuter.
Solution Windows
Malheureusement, il n'existe pas d'équivalent direct à usleep() dans l'API Windows. Cependant, comme le suggère la réponse, il existe des approches alternatives pour obtenir des pauses inférieures à la milliseconde, telles que :
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!