るりまサーチ

最速Rubyリファレンスマニュアル検索!
36件ヒット [1-36件を表示] (0.065秒)
トップページ > クエリ:-[x] > クエリ:end[x] > クラス:Thread::Mutex[x]

別のキーワード

  1. _builtin -
  2. open-uri open
  3. irb/input-method new
  4. irb/input-method gets
  5. matrix -

ライブラリ

キーワード

検索結果

Thread::Mutex#unlock -> self (113.0)

mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。

...m.unlock
end


Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると ThreadError が発生します。

m = Mutex.new
m.lock
Thread.new do
m.unlock # => ThreadError
end
.join

@ra...

Thread::Mutex#owned? -> bool (107.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#sleep(timeout = nil) -> Integer (107.0)

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

...グナルを受信した場合などに実行が再
開(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
//}...

Thread::Mutex#synchronize { ... } -> object (107.0)

mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。

...また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。

//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # => true
# critical part
"result"
end

m.locked? # => false
result # => "result"
//}...