るりまサーチ (Ruby 2.6.0)

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

別のキーワード

  1. date mon
  2. monitor mon_try_enter
  3. monitor mon_exit
  4. monitor try_mon_enter

ライブラリ

クラス

モジュール

キーワード

検索結果

MonitorMixin#mon_enter -> () (87361.0)

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

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

一度に一つのスレッドだけがモニターをロックできます。
既にモニターがロックされている場合は、ロックが開放されるまで
そのスレッドは待ちます。

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

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

Monitor#enter -> () (51106.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[Mu...

MonitorMixin#try_mon_enter -> bool (42307.0)

モニターのロックを取得しようと試みます。 ロックに成功した(ロックが開放状態だった、もしくは ロックを取得していたスレッドが自分自身であった)場合には 真を返します。

モニターのロックを取得しようと試みます。
ロックに成功した(ロックが開放状態だった、もしくは
ロックを取得していたスレッドが自分自身であった)場合には
真を返します。

ロックができなかった場合は偽を返し、実行を継続します。この場合には
スレッドはブロックしません。

MonitorMixin#mon_exit -> () (33022.0)

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

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

mon_enter でロックした回数だけ mon_exit を
呼ばなければモニターは解放されません。

モニターが解放されればモニターのロック待ちになっていた
スレッドが一つ実行を再開します。

@raise ThreadError ロックを持っていないスレッドが呼びだした場合に発生します

MonitorMixin#mon_synchronize { ... } -> object (33022.0)

モニターをロックし、ブロックを実行します。実行後に必ずモニターのロックを解放します。

モニターをロックし、ブロックを実行します。実行後に必ずモニターのロックを解放します。

ブロックの評価値を返り値として返します。

@see MonitorMixin#mon_enter

絞り込み条件を変える

MonitorMixin#synchronize { ... } -> object (33022.0)

モニターをロックし、ブロックを実行します。実行後に必ずモニターのロックを解放します。

モニターをロックし、ブロックを実行します。実行後に必ずモニターのロックを解放します。

ブロックの評価値を返り値として返します。

@see MonitorMixin#mon_enter

MonitorMixin#mon_try_enter -> bool (33007.0)

モニターのロックを取得しようと試みます。 ロックに成功した(ロックが開放状態だった、もしくは ロックを取得していたスレッドが自分自身であった)場合には 真を返します。

モニターのロックを取得しようと試みます。
ロックに成功した(ロックが開放状態だった、もしくは
ロックを取得していたスレッドが自分自身であった)場合には
真を返します。

ロックができなかった場合は偽を返し、実行を継続します。この場合には
スレッドはブロックしません。