Я знаю, что это задержка в несколько миллисекунд. Скажите, пожалуйста, когда применяется sleep в реальных проектах?
Еще есть функция usleep($micro_seconds) - аналогичная по действию ф-и sleep($seconds), но принимающая в качестве аргумента значение в микросекундах.
Из моей практики, приостановка выпонения скрипта на заданный период бывает полезна:
чтобы снизить нагрузку на интенсивно потребляемый скриптом ресурс(ы): CPU / DB / ...
чтобы снизить частоту запросов к внешнему ресурсу, который накладывает ограничения на их количество. Например - запрет доступа клиента к нему, при превышении им 100 запросов в течении 30сек.
чтобы на порядок увеличить время, необходимое для проведения брутфорса на форму аутенфикации. Например, перед ответом о неверной аутенфикации - делать паузу в несколько секунд.
для некоторых алгоритмов иногда требуется вставлять заданную паузу, для верной его реализации.
Например - требуется написать скрипт, который в бесконечном цикле каждые 10 секунд выводит одно сообщение Прошло 10 сек!:
Реализация:
<?php
while (true) {
if (time() % 10 === 0) {
echo "Прошло 10 сек!\n";
}
sleep(1);
}
Если закомментировать строку с sleep(1);, то скрипт будет работать неверно - выводить несколько сообщения вместо одного, а также начнет потреблять очень много (почти 100%) ресурсов CPU.
UPD: на комментарий Ep1demic
Продвижение своими сайтами как стратегия роста и независимости