るりまサーチ

最速Rubyリファレンスマニュアル検索!
119件ヒット [1-100件を表示] (0.043秒)
トップページ > クエリ:@[x] > クエリ:ConditionVariable[x]

別のキーワード

  1. conditionvariable wait
  2. conditionvariable signal
  3. conditionvariable broadcast
  4. _builtin conditionvariable
  5. conditionvariable new

ライブラリ

キーワード

検索結果

<< 1 2 > >>

Thread::ConditionVariable (18114.0)

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

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

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

https://ruby-doc.com/docs/ProgrammingRuby/html/tut_threads.html#UF

=== Condition Variable とは

あるスレッド A が排他領域で動いていたとしま...
...リソースの空きを
待っていても、いつまでも空くことはありません。

以上のような状況を解決するのが Condition Variable です。

スレッド a で条件(リソースが空いているかなど)が満たされるまで wait メソッドで
スレッドを...
...@q が空になった場合、
あるいは満タンになった場合に Condition Variable を使って wait しています。

require 'thread'

class TinyQueue
def initialize(max=2)
@
max = max
@
full = ConditionVariable.new
@
empty = ConditionVariable.new
@
mutex...

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

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

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

@
param mutex Thread::Mutex オブジェクトを指定します。

@
param timeout スリー...
...ます。この場合はシグナルを受け取
らなかった場合でも指定した秒数が経過するとスリープを終了
します。省略するとスリープし続けます。

@
see Thread::ConditionVariable#signal, Thread::ConditionVariable#broadcast...
...停止します。
Thread::ConditionVariable#signalまたは、
Thread::ConditionVariable#broadcastで送られたシグナルを
受け取ると、mutexのロックを取得し、実行状態となります。

@
param mutex Mutex オブジェクトを指定します。

@
param timeout スリープ...

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

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

...す。

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

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

timeout を与えた場合は最大 timeout...
...ます。

@
param timeout タイムアウトまでの秒数。指定しなかった場合はタイムアウトしません。

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

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

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

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

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

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

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

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

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

...て再開します。再開された
スレッドは Thread::ConditionVariable#wait
で指定した mutex のロックを試みます。

@
return 常に self を返します。

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

3.times {
Thread.start {
mutex.synchro...

絞り込み条件を変える

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

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

...つ再開します。再開された
スレッドは Thread::ConditionVariable#wait
で指定した mutex のロックを試みます。

@
return 常に self を返します。

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

3.times {
Thread.start {
mutex.synchro...

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

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

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

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

@
see MonitorMixin::ConditionVariable#wait...

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

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

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

@
see MonitorMixin::ConditionVariable#signal...

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

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

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

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

@
see MonitorMixin::ConditionVariable#broadcast...
<< 1 2 > >>