2009-08-25 7 views

Répondre

493

Il est assez facile:

sleep(num_secs) 

La valeur « num_secs » peut être un entier ou flottant. En outre, si vous écrivez cela dans une application Rails, ou avez inclus la bibliothèque ActiveSupport ailleurs dans votre projet, vous pouvez construire des intervalles plus longs en utilisant la syntaxe de commodité suivante:

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

Utilisez sleep comme ceci:

sleep 2 

Ça va dormir pendant 2 secondes.

Veillez à donner un argument. Si vous exécutez simplement sleep, le processus dormira pour toujours. (Ceci est utile lorsque vous voulez un fil de dormir jusqu'à ce qu'il soit réveillé.)

+1

Attendez, dormira-t-il pour toujours, ou jusqu'à ce qu'il soit "réveillé"? Que signifie "woken"? – anthropomorphic

+4

@anthropomorphic Cela fait référence à quand un autre thread appelle Thread # run. –

+0

En fait, quand un autre thread appelle Thread # wakeup, je suppose. – chesterbr

2

sleep 6 dormiront pendant 6 secondes. Pour une durée plus longue, vous pouvez également utiliser sleep(6.minutes) ou sleep(6.hours).

+2

Je ne suis pas sûr des downvotes sur ce sujet, mais il se pourrait que 'minutes()' et 'hours()' soient des méthodes sur les nombres ajoutés par Ruby on Rails - donc pas standard dans Ruby - dans la classe ActiveSupport :: Duration. Ils sont très pratiques cependant. –

Questions connexes