W3docs

usleep()

Dans cet article, nous nous concentrons sur la fonction PHP usleep(). Nous vous présentons son fonctionnement et des exemples d'utilisation.

Dans cet article, nous nous concentrons sur la fonction PHP usleep(). Nous vous présentons un aperçu de la fonction, son fonctionnement et des exemples d'utilisation.

Introduction à la fonction usleep()

La fonction usleep() est une fonction intégrée de PHP qui permettait de mettre en pause l'exécution d'un script pendant un nombre spécifié de microsecondes. Elle offrait des délais avec un minutage très précis.

Remarque : usleep() a été dépréciée dans PHP 8.1 et supprimée dans PHP 8.2. Pour les versions modernes de PHP, utilisez time_nanosleep() ou time_sleep_until() à la place.

La fonction usleep() prend un seul argument, qui est le nombre de microsecondes pendant lesquelles l'exécution du script doit être suspendue. Une microseconde vaut un millionième de seconde, donc 1000000 microsecondes équivalent à une seconde. Cette granularité plus fine distingue usleep() de sleep(), qui n'accepte que des secondes entières.

Syntaxe

usleep(int $microseconds): void
ArgumentTypeDescription
$microsecondsintLe nombre de microsecondes pendant lesquelles suspendre le script. 1 seconde = 1000000 microsecondes.

Comment utiliser la fonction usleep()

L'utilisation de la fonction usleep() est très simple. Il suffit d'appeler la fonction et de passer le nombre de microsecondes pendant lesquelles l'exécution du script doit être suspendue. Voici un exemple :

Comment utiliser la fonction usleep() ?

php— editable, runs on the server

Dans cet exemple, nous appelons la fonction usleep() avec un argument de 500000 pour le nombre de microsecondes pendant lesquelles l'exécution du script doit être suspendue. Cela met en pause l'exécution du script pendant 500 millisecondes (0,5 seconde). Nous affichons ensuite un message dans la console indiquant que nous sommes en attente, attendons le temps spécifié, puis affichons un autre message indiquant que l'attente est terminée.

Mesurer le délai

Étant donné que les microsecondes sont faciles à mal compter, il est utile de mesurer le temps réellement écoulé avec microtime(). L'exemple ci-dessous attend un quart de seconde et affiche la durée réelle :

<?php
$start = microtime(true);
usleep(250000); // 250000 microseconds = 0.25 seconds
$elapsed = microtime(true) - $start;
echo "Slept for " . round($elapsed, 3) . " seconds\n";
?>

Le résultat est approximativement Slept for 0.25 seconds — il peut être légèrement plus long, car le système d'exploitation décide du moment où réveiller le processus.

Quand utiliser usleep()

usleep() est utile lorsqu'une pause d'une seconde entière avec sleep() est trop grossière :

  • Limitation de débit — ajouter un petit délai entre des appels API répétés ou des itérations de boucle pour rester sous un quota de requêtes.
  • Interrogation — attendre une fraction de seconde avant de vérifier à nouveau un fichier, un verrou ou une file d'attente.
  • Ralentissement de la sortie — ralentir une animation CLI ou un affichage de progression pour le rendre lisible.

Pour des pauses mesurées en nanosecondes, ou lorsque vous avez besoin que l'appel reprenne de manière fiable après un signal, préférez time_nanosleep(). Pour mettre en pause jusqu'à un moment précis de l'horloge murale, utilisez time_sleep_until().

Considérations de performance

La fonction usleep() est légère et utilise des appels de mise en veille du système d'exploitation, ce qui lui confère une surcharge CPU négligeable. Cependant, la durée réelle de la pause dépend du planificateur du système d'exploitation, ce qui signifie qu'une précision inférieure à la milliseconde n'est pas garantie. Pour une précision plus élevée ou des pratiques PHP modernes, envisagez time_nanosleep() ou time_sleep_until().

Conclusion

En conclusion, la fonction usleep() est un moyen simple de mettre en pause l'exécution d'un script dans les environnements PHP hérités. En comprenant ses exigences en matière d'unités, le comportement de minutage dépendant du système d'exploitation et son statut de dépréciation, vous pouvez l'utiliser efficacement pour des délais simples ou migrer vers des alternatives modernes telles que time_nanosleep() ou time_sleep_until().

Pratique

Pratique
Quel est le rôle de la fonction usleep() en PHP ?
Quel est le rôle de la fonction usleep() en PHP ?
Was this page helpful?