Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Mutexクラス > sleep

instance method Mutex#sleep

sleep(timeout = nil) -> Integer[permalink][rdoc]

与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。

[PARAM] timeout:
スリープする秒数を指定します。省略するとスリープし続けます。
[RETURN]
スリープしていた秒数を返します。
[EXCEPTION] ThreadError:
自身がカレントスレッドによってロックされていない場合に発生します。

[注意] 2.0 以降ではスリープ中でも、シグナルを受信した場合などに実行が再開(spurious wakeup)される場合がある点に注意してください。



m = Mutex.new
th = Thread.new do
  m.lock
  m.sleep(2)
end
th.status # => "run"
sleep 1
th.status # => "sleep"
sleep 1
th.status # => false