24

Can any body explain me what is the difference among sleep() and usleep() in PHP.

I have directed to use following scripts to do chat application for long pulling but in this script I am getting same effect using usleep(25000); or without usleep(25000);

page1.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>

page2.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"; 
}
?>
Ian Gregory
  • 5,770
  • 1
  • 29
  • 42
MD SHAHIDUL ISLAM
  • 14,325
  • 6
  • 82
  • 89

5 Answers5

43

The argument to sleep is seconds, the argument to usleep is microseconds. Other than that, I think they're identical.

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

usleep(25000) only sleeps for 0.025 seconds.

Barmar
  • 741,623
  • 53
  • 500
  • 612
6

sleep() allows your code to sleep in seconds.

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

usleep() allows your code with respect to microseconds.

  • usleep(2500000); // sleeps for 2.5 seconds
COil
  • 7,201
  • 2
  • 50
  • 98
Ashwin
  • 993
  • 1
  • 16
  • 41
2

usleep() is used to delay execution in "microseconds" while sleep() is used to delay execution in seconds. So usleep(25000) is 0.025 seconds.

Is there any difference between the two?
Zo Has
  • 12,599
  • 22
  • 87
  • 149
shahpranaf
  • 121
  • 1
  • 5
2

One other difference is sleep returns 0 on success, false on error. usleep doesn't return anything.

qualia
  • 41
  • 2
1

Simply

usleep uses CPU Cycles while sleep does not.

sleep takes seconds as argument

while usleep takes microseconds as argument

Dev Matee
  • 5,525
  • 2
  • 27
  • 33