Разница между sleep () и usleep () в PHP

может ли любой орган объяснить мне, в чем разница между sleep() и usleep() в PHP.

Я направил использовать следующие сценарии, чтобы сделать приложение чата для длительного вытягивания, но в этом скрипте я получаю тот же эффект, используя usleep(25000); и без usleep(25000);

Страница 1.в PHP

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" 
       type="text/javascript"></script>

<script>
var lpOnComplete = function(response) {
    console.log(response);
    // do more processing
    lpStart();
};

var lpStart = function() {
    $.post('page2.php', {}, lpOnComplete, 'json');
};

$(document).ready(lpStart);
</script>

Страница 2.в PHP

<?php
$time = time();
while((time() - $time) < 30) {
    // query memcache, database, etc. for new data
    $data = getLatest();

    // if we have new data return it
    if(!empty($data)) {
        echo json_encode($data);
        break;
    }

    usleep(25000);
}

function getLatest() {
    sleep(2);
    return "Test Data"; 
}
?>

4 ответов


аргумент sleep - секунды, аргумент к usleep - это микросекунды. В остальном, я думаю, они идентичны.

sleep($n) == usleep($n * 1000000)

usleep(25000) спит только на 0,025 секунды.


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

  • sleep(5); // sleeps for 5 seconds

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

  • usleep(2500000); // sleeps for 2.5 seconds

usleep() используется для задержки выполнения в "микросекундах", в то время как sleep() используется для задержки выполнения в секундах. Так что usleep(25000) - это 0,025 секунды.

Is there any difference between the two?

еще одно отличие-sleep возвращает 0 при успехе, false при ошибке. usleep ничего не вернуть.