3.13. Oczekiwanie przez zadany odcinek czasu

Problem

Chcemy zawiesić wykonywanie programu lub wątku na zadany odcinek czasu.

Rozwiązanie

Metoda Kernel#sleep wprowadza wątek w stan zawieszenia na czas określony (w sekundach) przez argument wywołania będący liczbą zmiennopozycyjną.

3.downto(1) { |i| puts "#{i}..."; sleep(1) }; puts "Start!"
# 3...
# 2...
# 1...
# Start!

Time.new           # => Thu Oct 12 19:50:33 Europa Środkowa (czas stand.) 2006
sleep(10)
Time.new           # => Thu Oct 12 19:50:43 Europa Środkowa (czas stand.) 2006
sleep(1)
Time.new           # => Thu Oct 12 19:50:44 Europa Środkowa (czas stand.) 2006
# Zawieszenie wątku na ułamek sekundy
Time.new.usec                        # => 343300
sleep(0.1)
Time.new.usec                        # => 449200

Dyskusja

Potrzeba zawieszenia wykonywania ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.