るりまサーチ

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

別のキーワード

  1. conditionvariable wait
  2. conditionvariable broadcast
  3. thread conditionvariable
  4. conditionvariable wait_until

ライブラリ

キーワード

検索結果

Thread::ConditionVariable#signal -> Thread | nil (21117.0)

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

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

@return 状態を待っているスレッドがあった場合は、そのスレッドを返します。...

MonitorMixin::ConditionVariable#signal -> () (21107.0)

その条件変数で待っているスレッドがあれば実行を再開させます。

...させます。

複数のスレッドが待っている場合には1つのスレッドのみ
実行を再開します。

@see MonitorMixin::ConditionVariable#broadcast...

Thread::ConditionVariable (6048.0)

スレッドの同期機構の一つである状態変数を実現するクラスです。

...一つである状態変数を実現するクラスです。

以下も ConditionVariable を理解するのに参考になります。

http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_threads.html#UF

=== Condition Variable とは

あるスレッド A が排他領域で動いていたとし...
...状況を解決するのが Condition Variable です。

スレッド a で条件(リソースが空いているかなど)が満たされるまで wait メソッドで
スレッドを止めます。他のスレッド b において条件が満たされたなら signal
メソッドでスレッド a...
...に対して条件が成立したことを通知します。これが典型的な
使用例です。

mutex = Mutex.new
cv = ConditionVariable.new

a = Thread.start {
mutex.synchronize {
...
while (条件が満たされない)
cv.wait(mutex)...

Thread::ConditionVariable#wait(mutex, timeout = nil) -> self (3048.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 オブ...

MonitorMixin::ConditionVariable#wait(timeout = nil) -> bool (3030.0)

モニタのロックを開放し、現在のスレッドを停止します。

...す。

これを呼ぶスレッドはモニタのロックを保持している必要があります。

MonitorMixin::ConditionVariable#signal
MonitorMixin::ConditionVariable#broadcast
で起こされるまでスレッドは停止し続けます。

timeout を与えた場合は最大 timeout...
...での秒数。指定しなかった場合はタイムアウトしません。

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

@see MonitorMixin::ConditionVariable#wait_while, MonitorMixin::ConditionVariable#wait_until...

絞り込み条件を変える

MonitorMixin::ConditionVariable#wait_until { ... } -> () (3024.0)

モニタのロックを開放し、現在のスレッドを ブロックで指定した条件を満たすまで停止します。

...放し、現在のスレッドを
ブロックで指定した条件を満たすまで停止します。

MonitorMixin::ConditionVariable#signal
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
その結果によっ...
...てこのメソッドから抜け処理を継続するか
再びロックを開放しスレッドを停止するかを決めます。

@see MonitorMixin::ConditionVariable#wait...

MonitorMixin::ConditionVariable#wait_while { ... } -> () (3024.0)

モニタのロックを開放し、現在のスレッドを ブロックで指定した条件を満たしている間停止します。

...、現在のスレッドを
ブロックで指定した条件を満たしている間停止します。

MonitorMixin::ConditionVariable#signal
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
その結果によっ...
...このメソッドから抜け処理を継続するか
再びロックを開放しスレッドを停止するかを決めます。

@raise ThreadError ロックを持っていないスレッドがこのメソッドを呼びだした場合に発生します
@see MonitorMixin::ConditionVariable#wait...

MonitorMixin::ConditionVariable#broadcast -> () (3012.0)

その条件変数で 待っている全てのスレッドの実行を再開します。

...その条件変数で
待っている全てのスレッドの実行を再開します。

@see MonitorMixin::ConditionVariable#signal...