2009-08-25 15 views

Odpowiedz

493

To całkiem proste:

sleep(num_secs) 

Wartość „num_secs” może być liczbą całkowitą lub pływaka. Ponadto, jeśli piszesz to w aplikacji Rails, lub obejmowały bibliotekę ActiveSupport gdzie indziej w projekcie, można konstruować dłuższe interwały używając następującej składni Wygoda:

sleep(4.minutes) 
# or, even longer... 
sleep(2.hours); sleep(3.days) # etc., etc. 
#Or shorter 
sleep(0.5) #Half a second 
96

Zastosowanie sleep tak:

sleep 2 

To będzie spać przez 2 sekundy.

Uważaj, aby podać argument. Jeśli po prostu uruchomisz sleep, proces będzie spał na zawsze. (Funkcja ta jest przydatna, gdy chcesz nitki spać dopóki nie obudziła.)

+1

Czekaj, czy to będzie spać wiecznie, czy do momentu, gdy zostanie "obudzony"? Co znaczy "obudzony"? – anthropomorphic

+4

@antropomorficzny To odnosi się do kiedy inny wątek dzwoni do wątku. –

+0

Właściwie, kiedy inny wątek dzwoni do wątku #, prawdopodobnie. – chesterbr

2

sleep 6 będą spać do 6 sekund. Przez dłuższy czas można również użyć sleep(6.minutes) lub sleep(6.hours).

+2

Nie jestem pewien co do zapisów na ten temat, ale może być tak, że 'minutes()' i 'hours()' są metodami na numerach dodawanych przez Ruby na Railsach - więc nie standardowe dostępne w Ruby - w klasie ActiveSupport :: Duration. Są jednak całkiem wygodne. –

Powiązane problemy