36件ヒット
[1-36件を表示]
(0.218秒)
ライブラリ
- ビルトイン (36)
キーワード
- owned? (9)
- sleep (9)
- synchronize (9)
- unlock (9)
検索結果
先頭4件
-
Thread
:: Mutex # owned? -> bool (9102.0) -
self がカレントスレッドによってロックされている場合に true を返します。 そうでない場合に false を返します。
...self がカレントスレッドによってロックされている場合に true を返します。
そうでない場合に false を返します。
//emlist[例][ruby]{
m = Mutex.new
m.owned? # => false
m.lock
Thread.new do
m.owned? # => false
end.join
m.owned? # => true
//}... -
Thread
:: Mutex # synchronize { . . . } -> object (9102.0) -
mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。
...@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
//emlist[例][ruby]{
m = Mutex.new......result = m.synchronize do
m.locked? # => true
# critical part
"result"
end
m.locked? # => false
result # => "result"
//}... -
Thread
:: Mutex # unlock -> self (9102.0) -
mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。
...@return self を返します。
例:
m = Mutex.new
begin
m.lock
# critical part
ensure
m.unlock
end
Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると ThreadError が......m = Mutex.new
m.lock
Thread.new do
m.unlock # => ThreadError
end.join
@raise ThreadError self がロックされていない場合や self をロックしたス
レッド以外から呼ばれた場合に発生します。
また、Signal.#trap に指定... -
Thread
:: Mutex # sleep(timeout = nil) -> Integer (3102.0) -
与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
...リープして、実行後にまたロックします。
@param timeout スリープする秒数を指定します。省略するとスリープし続けます。
@return スリープしていた秒数を返します。
@raise ThreadError 自身がカレントスレッドによってロックさ......グナルを受信した場合などに実行が再
開(spurious wakeup)される場合がある点に注意してください。
//emlist[例][ruby]{
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
//}......にまたロックします。
@param timeout スリープする秒数を指定します。省略するとスリープし続けます。
@return タイムアウトした時は nil を、それ以外はスリープしていた秒数を返します。
@raise ThreadError 自身がカレントスレ...