24件ヒット
[1-24件を表示]
(0.093秒)
検索結果
-
MonitorMixin
# mon _ enter -> () (6107.0) -
モニターをロックします。
...スレッドは待ちます。
Thread::Mutex#lock に相当します。
Mutex#lock と違うのは現在のモニターの所有者が現在実行されているスレッドである場合、
何度でもロックできる点です。ロックした回数だけ mon_exit を呼ばなければモニ......。
//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)
//}... -
MonitorMixin
# mon _ exit -> () (6107.0) -
モニターのロックを解放します。
...します。
mon_enter でロックした回数だけ mon_exit を
呼ばなければモニターは解放されません。
モニターが解放されればモニターのロック待ちになっていた
スレッドが一つ実行を再開します。
@raise ThreadError ロックを持って...