るりまサーチ

最速Rubyリファレンスマニュアル検索!
294件ヒット [201-294件を表示] (0.113秒)

別のキーワード

  1. mutex_m lock
  2. mutex_m unlock
  3. mutex_m mu_lock
  4. mutex_m locked?
  5. _builtin mutex

ライブラリ

モジュール

キーワード

検索結果

<< < 1 2 3 >>

Mutex_m#try_lock -> bool (3001.0)

self をロックしようとして、成功した場合、真を返し、ロックを得ます。

self をロックしようとして、成功した場合、真を返し、ロックを得ます。

ロックできなかった場合にはブロックせず偽を返します。

Mutex_m#unlock -> () (3001.0)

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

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

@raise ThreadError ロックされていない場合に unlock を呼ぶと発生します

PStore::DummyMutex#synchronize { ... } -> object (3001.0)

与えられたブロックを評価するだけで何もしません。

与えられたブロックを評価するだけで何もしません。

Thread::ConditionVariable#wait(mutex, timeout = nil) -> self (146.0)

mutex のロックを解放し、カレントスレッドを停止します。 Thread::ConditionVariable#signalまたは、 Thread::ConditionVariable#broadcastで送られたシグナルを 受け取ると、mutexのロックを取得し、実行状態となります。

...
mutex
のロックを解放し、カレントスレッドを停止します。
Thread::ConditionVariable#signalまたは、
Thread::ConditionVariable#broadcastで送られたシグナルを
受け取ると、mutexのロックを取得し、実行状態となります。

@param mutex Thread::Mutex...
...
mutex
のロックを解放し、カレントスレッドを停止します。
Thread::ConditionVariable#signalまたは、
Thread::ConditionVariable#broadcastで送られたシグナルを
受け取ると、mutexのロックを取得し、実行状態となります。

@param mutex Mutex オブ...

Thread::ConditionVariable#broadcast -> self (47.0)

状態変数を待っているスレッドをすべて再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。

...ait
で指定した mutex のロックを試みます。

@return 常に self を返します。

//emlist[例][ruby]{
mutex
= Mutex.new
cv = ConditionVariable.new
flg = true

3.times {
Thread.start {
mutex
.synchronize {
puts "a1"
while (flg)
cv.wait(mutex)
end...
...puts "a2"
}
}
}

Thread.start {
mutex
.synchronize {
flg = false
cv.broadcast
}
}

sleep 1

# => a1
# => a1
# => a1
# => a2
# => a2
# => a2
//}...

絞り込み条件を変える

Thread::ConditionVariable#signal -> self (47.0)

状態変数を待っているスレッドを1つ再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。

...ait
で指定した mutex のロックを試みます。

@return 常に self を返します。

//emlist[例][ruby]{
mutex
= Mutex.new
cv = ConditionVariable.new
flg = true

3.times {
Thread.start {
mutex
.synchronize {
puts "a1"
while (flg)
cv.wait(mutex)
end...
...puts "a2"
}
}
}

Thread.start {
mutex
.synchronize {
flg = false
cv.signal
}
}

sleep 1

# => a1
# => a1
# => a1
# => a2
//}...

Monitor#enter -> () (31.0)

MonitorMixin#mon_enter の別名です。

...MonitorMixin#mon_enter の別名です。

Thread::Mutex#lock に相当します。
Thread::Mutex#lock と違うのは現在のモニターの所有者が現在実行されているスレッドである場合、
何度でもロックできる点です。ロックした回数だけ Monitor#exit を...
...されません。

//emlist[例][ruby]{
require 'monitor'
mon = Monitor.new
mon.enter
mon.enter
//}

Thread::Mutex#lock ではデッドロックが起きます。

//emlist[Mutex でデッドロックする例][ruby]{
m = Mutex.new
m.lock
m.lock # => deadlock; recursive locking (ThreadError)
//}...
...ターがロックされている場合は、ロックが開放されるまで
そのスレッドは待ちます。

Thread::Mutex#lock に相当します。
Thread::Mutex#lock と違うのは現在のモニターの所有者が現在実行されているスレッドである場合、
何度でも...

Monitor#mon_enter -> () (31.0)

モニターをロックします。

...ターがロックされている場合は、ロックが開放されるまで
そのスレッドは待ちます。

Thread::Mutex#lock に相当します。
Thread::Mutex#lock と違うのは現在のモニターの所有者が現在実行されているスレッドである場合、
何度でも...
...されません。

//emlist[例][ruby]{
require 'monitor'
mon = Monitor.new
mon.enter
mon.enter
//}

Thread::Mutex#lock ではデッドロックが起きます。

//emlist[Mutex でデッドロックする例][ruby]{
m = Mutex.new
m.lock
m.lock # => deadlock; recursive locking (ThreadError)
//}...

MonitorMixin#mon_enter -> () (31.0)

モニターをロックします。

...モニターがロックされている場合は、ロックが開放されるまで
そのスレッドは待ちます。

Thread::Mutex#lock に相当します。
Mutex
#lock と違うのは現在のモニターの所有者が現在実行されているスレッドである場合、
何度でもロ...
...

//emlist[例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin)
buf.mon_enter
buf.mon_enter
//}

Mutex
#lock ではデッドロックが起きます。

//emlist[Mutex でデッドロックする例][ruby]{
m = Mutex.new
m.lock
m.lock # => deadlock; recursive locking (ThreadError)
//}...
<< < 1 2 3 >>