Есть ли другая разница между сном и usleep?

Единственная разница между функцией сна и функцией сна в том, что параметр первого находится в секундах, а другой - в микросекундах ?? Есть ли еще отличия??

И еще, пожалуйста, я буду использовать эту функцию с циклами. Есть ли какие-либо проблемы, которые могут привести меня к несчастному случаю??


person Nedal Eldeen    schedule 08.02.2014    source источник


Ответы (3)


Из обзора документации по PHP на usleep и на sleep вы заметите, что есть 2 отличия:

  1. Аргумент для usleep — целое число, представляющее микросекунды (микросекунда — это одна миллионная доля секунды), а аргумент для sleep — целое число, представляющее секунды.

  2. sleep возвращает «ноль в случае успеха или FALSE в случае ошибки». usleep не имеет возвращаемого значения. Вот более подробная информация о возвращаемом значении для sleep:

Если вызов был прерван сигналом, sleep() возвращает ненулевое значение. В Windows это значение всегда будет 192 (значение константы WAIT_IO_COMPLETION в Windows API). На других платформах возвращаемое значение будет количеством секунд, оставшихся до сна.

В общем, вы должны быть в порядке, используя эти функции в циклах. При этом более важными вопросами, которые следует задать, являются следующие: Зачем вам нужно решение, зависящее от приостановки выполнения на определенное время? Это действительно хорошее решение вашей проблемы или это хак-фикс для какой-то странной ошибки или пограничного случая, от которого вы просто хотите избавиться?

person Alvin S. Lee    schedule 08.02.2014

usleep — Задержка выполнения в микросекундах. Время остановки в микросекундах. Микросекунда — это одна миллионная доля секунды.

`sleep` — Delay execution

Delays the program execution for the given number of seconds.

я не вижу большей разницы между этими двумя функциями

person Ferrakkem Bhuiyan    schedule 08.02.2014

sleep() позволяет вашему коду засыпать за считанные секунды.

sleep(5); // sleeps for 5 seconds

usleep() позволяет вашему коду работать с микросекундами.

usleep(2500000); // slees for 2.5 seconds

В остальном, я думаю, они идентичны.

sleep($n) == usleep($n * 1000000)
usleep(25000) only sleeps for 0.025 seconds.
person Shri Suresh    schedule 08.02.2014