るりまサーチ

最速Rubyリファレンスマニュアル検索!
40件ヒット [1-40件を表示] (0.158秒)
トップページ > クエリ:t[x] > クエリ:@[x] > 種類:インスタンスメソッド[x] > クラス:Thread::Mutex[x]

別のキーワード

  1. openssl t61string
  2. asn1 t61string
  3. matrix t
  4. t61string new
  5. fiddle type_size_t

ライブラリ

キーワード

検索結果

Thread::Mutex#sleep(timeout = nil) -> Integer (3120.0)

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

...てスリープして、実行後にまたロックします。

@
param timeout スリープする秒数を指定します。省略するとスリープし続けます。

@
return スリープしていた秒数を返します。

@
raise ThreadError 自身がカレントスレッドによってロッ...
...グナルを受信した場合などに実行が再
開(spurious wakeup)される場合がある点に注意してください。

//emlist[例][ruby]{
m = Mutex.new
t
h = Thread.new do
m.lock
m.sleep(2)
end
t
h.status # => "run"
sleep 1
t
h.status # => "sleep"
sleep 1
t
h.status # => false
//}...
...後にまたロックします。

@
param timeout スリープする秒数を指定します。省略するとスリープし続けます。

@
return タイムアウトした時は nil を、それ以外はスリープしていた秒数を返します。

@
raise ThreadError 自身がカレントス...

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

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

...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#lock -> self (3014.0)

mutex オブジェクトをロックします。一度に一つのス レッドだけが mutex をロックできます。既にロックされている mutex に対してロックを行おうとしたスレッドは mutex のロックが解放さ れるまで、実行が停止されます。

...mutex オブジェクトをロックします。一度に一つのス
レッドだけが mutex をロックできます。既にロックされている mutex
に対してロックを行おうとしたスレッドは mutex のロックが解放さ
れるまで、実行が停止されます。

@
rais...
...e ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。


@
see Thread::Mutex#unlock...

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

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

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

@
return self を返します。

例:

m = Mutex.new
begin
m.lock
# critical part
ensure
m.unlock
end

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

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

@
raise ThreadError self がロックされていない場合や self をロックしたス...
...レッド以外から呼ばれた場合に発生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。...