Зачем использовать уснуть, а не спать

Я читал код приложения, и что-то привлекло мое внимание. Код был: usleep(6*1000*1000), Я понимаю, что они используют этот формат для удобства чтения.

Я думаю, что оба sleep а также usleep использовать nanosleep функция, поэтому мой вопрос: почему бы не использовать сон (6), который делает то же самое (то есть: спит в течение 6 секунд)? Мы выигрываем в производительности, когда мы используем usleep? является usleep более "универсальный"?

2 ответа

Решение

Я думаю, что и сон, и сон используют функцию наноспала,

Они могут или не могут. Я не знаю каких-либо оправданий в стандартах C и POSIX для этого предположения.

поэтому мой вопрос: почему бы не использовать sleep(6), которая делает то же самое (то есть: спит в течение 6 секунд)? Повышаем ли мы производительность, когда используем usleep? усле более "родовой"?

sleep() функция возникла в AT&T Unix версии 7. usleep() Функция возникла в BSD 4.3. Хотя POSIX стандартизирует смесь функций, взятых из обоих, было время, когда вы, вероятно, имели только одну из двух доступных вам, в которой была функция вашего специфического вида Unix.

Настоящее время, usleep() устарел и был удален из POSIX. Это все еще широко поддерживается, но nanosleep() (или же sleep()) следует использовать вместо этого в новом коде.

Аргумент для сна - секунды, аргумент для сна - микросекунды. Кроме этого, я думаю, что они идентичны.

sleep ($ n) == usleep ($ n * 1000000) usleep (25000) спит только в течение 0,025 секунд.

Другие вопросы по тегам