2013-10-24 18 views
20

Qualcuno può spiegarmi qual è la differenza tra sleep() e usleep() in PHP.Differenza tra sleep() e usleep() in PHP

ho diretto per utilizzare seguente script per fare domanda di chattare lungo tira, ma in questo script sto ottenendo lo stesso effetto usando usleep(25000); o senza 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() richiede un numero di secondi come parametro e usleep() richiede un numero di microsecondi - milionesimi di secondo come parametro. – Ranjitsinh

+1

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

risposta

34

L'argomento su sleep è secondi, l'argomento su usleep è microsecondi. Oltre a questo, penso che siano identici.

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

usleep(25000) posti letto solo per 0.025 secondi.

2

usleep() viene utilizzato per ritardare l'esecuzione in "microsecondi" mentre sleep() viene utilizzato per ritardare l'esecuzione in secondi. Quindi usleep(25000) è 0,025 secondi.

Is there any difference between the two? 
5

sleep() consente al codice di dormire in secondi.

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

usleep() consente il codice rispetto al microsecondi.

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

Un altra differenza è di sonno restituisce 0 in caso di successo, falso in caso di errore. usleep non restituisce nulla.

+0

puoi menzionarlo in un commento nella risposta accettata – meta