W3docs

usleep()

Neste artigo, exploramos a função usleep() do PHP: visão geral, funcionamento e exemplos de uso.

Neste artigo, vamos nos concentrar na função usleep() do PHP. Forneceremos uma visão geral da função, como ela funciona e exemplos de seu uso.

Introdução à função usleep()

A função usleep() é uma função integrada do PHP que foi utilizada para pausar a execução de um script por um número especificado de microssegundos. Ela permitia atrasos com temporização muito precisa.

Nota: usleep() foi depreciada no PHP 8.1 e removida no PHP 8.2. Para PHP moderno, use time_nanosleep() ou time_sleep_until().

A função usleep() recebe um único argumento, que é o número de microssegundos para pausar a execução do script. Um microssegundo equivale a um milionésimo de segundo, portanto 1000000 microssegundos correspondem a um segundo. Essa granularidade mais fina é o que diferencia usleep() de sleep(), que aceita apenas segundos inteiros.

Sintaxe

usleep(int $microseconds): void
ArgumentoTipoDescrição
$microsecondsintO número de microssegundos para interromper o script. 1 segundo = 1000000 microssegundos.

Como usar a função usleep()

Usar a função usleep() é muito simples. Basta chamar a função e passar o número de microssegundos para pausar a execução do script. Veja um exemplo:

Como usar a função usleep()?

php— editable, runs on the server

Neste exemplo, chamamos a função usleep() com o argumento 500000 para o número de microssegundos a pausar a execução do script. Isso pausa a execução do script por 500 milissegundos (0,5 segundos). Em seguida, exibimos uma mensagem no console indicando que estamos dormindo, aguardamos o tempo especificado e então exibimos outra mensagem indicando que terminamos de dormir.

Medindo o atraso

Como os microssegundos são fáceis de contar errado, é útil medir o tempo real decorrido com microtime(). O exemplo abaixo dorme por um quarto de segundo e imprime a duração real:

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

A saída é aproximadamente Slept for 0.25 seconds — pode ser um pouco mais longa porque o sistema operacional decide quando acordar o processo.

Quando usar usleep()

usleep() é útil sempre que uma pausa de segundo inteiro com sleep() é demasiado grosseira:

  • Limitação de taxa — adicionar um pequeno intervalo entre chamadas repetidas de API ou iterações de loop para ficar abaixo de uma cota de requisições.
  • Polling — aguardar uma fração de segundo antes de verificar novamente um arquivo, bloqueio ou fila.
  • Limitação de saída — desacelerar uma animação de CLI ou exibição de progresso para que seja legível.

Para pausas medidas em nanossegundos, ou quando você precisa que a chamada retome de forma confiável após um sinal, prefira time_nanosleep(). Para pausar até um momento específico do relógio, use time_sleep_until().

Considerações de desempenho

A função usleep() é leve e usa chamadas de sleep do sistema operacional, portanto tem sobrecarga de CPU desprezível. No entanto, a duração real da pausa depende do escalonador do SO, o que significa que a precisão abaixo de um milissegundo não é garantida. Para maior precisão ou práticas modernas de PHP, considere time_nanosleep() ou time_sleep_until().

Conclusão

Em conclusão, a função usleep() é uma maneira direta de pausar a execução de scripts em ambientes PHP legados. Ao compreender seus requisitos de unidade, comportamento de temporização dependente do SO e status de depreciação, você pode utilizá-la efetivamente para atrasos simples ou migrar para alternativas modernas como time_nanosleep() ou time_sleep_until().

Prática

Prática
Qual é a finalidade da função usleep() no PHP?
Qual é a finalidade da função usleep() no PHP?
Was this page helpful?