2009-08-25 2 views

ответ

493

Это довольно легко:

sleep(num_secs) 

Значение «num_secs» может быть целым или с плавающей точкой. Кроме того, если вы пишете это в приложении Rails, или включили библиотеку ActiveSupport в другом месте в вашем проекте, вы можете построить более длительные интервалы, используя следующий синтаксис удобства:

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

Использование sleep так:

sleep 2 

Это будет спать в течение 2-х секунд.

Будьте осторожны, чтобы дать аргумент. Если вы просто запустите sleep, процесс будет спать вечно. (Это полезно, если вы хотите, чтобы нить спать, пока он не проснулся.)

+1

Подождите, он будет спать вечно, или пока это не «проснулось»? Что значит «проснуться»? – anthropomorphic

+4

@anthropomorphic Это относится к тому, когда другой поток вызывает Thread # run. –

+0

На самом деле, когда другой поток вызывает Thread # wakeup, я полагаю. – chesterbr

2

sleep 6 будет спать в течение 6 секунд. В течение более длительного времени вы также можете использовать sleep(6.minutes) или sleep(6.hours).

+2

Не уверен в этом, но может быть, что 'minutes()' и 'hours()' - это методы для чисел, добавленных Ruby on Rails, поэтому не стандартный доступный в Ruby - в классе ActiveSupport :: Duration. Они довольно удобны, хотя. –

Смежные вопросы