2013-10-24 6 views
20

Kann mir jeder Körper erklären, was der Unterschied zwischen sleep() und usleep() in PHP ist.Unterschied zwischen sleep() und usleep() in PHP

Ich habe gerichtet Skripte Anwendung ziehe lange plaudern zu tun folgenden zu verwenden, aber in diesem Skript Ich bin immer gleichen Effekt mit usleep(25000); oder ohne 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"; 
} 
?> 
+2

sleep() braucht eine Anzahl von Sekunden als Parameter und usleep() benötigt eine Anzahl von Mikrosekunden - Millionstel Sekunden als Parameter. – Ranjitsinh

+1

http://wordpressapi.com/how-to-use-sleep-usleep-function-in-php/ –

Antwort

34

Das Argument zu sleep ist Sekunden, das Argument zu usleep ist Mikrosekunden. Ansonsten denke ich, dass sie identisch sind.

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

usleep(25000) schläft nur für 0,025 Sekunden.

2

usleep() wird verwendet, um die Ausführung in "Mikrosekunden" zu verzögern, während sleep() verwendet wird, um die Ausführung in Sekunden zu verzögern. Also usleep(25000) ist 0,025 Sekunden.

Is there any difference between the two? 
5

sleep() ermöglicht Ihrem Code in Sekunden zu schlafen.

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

usleep() ermöglicht Code in Bezug auf Mikrosekunden.

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

Ein weiterer Unterschied ist der Schlaf gibt bei Erfolg 0, false bei Fehlern. usleep gibt nichts zurück.

+0

können Sie es nur in einem Kommentar in der angenommenen Antwort erwähnen – meta