185件ヒット
[1-100件を表示]
(0.058秒)
種類
- インスタンスメソッド (60)
- 特異メソッド (48)
- 文書 (41)
- クラス (24)
- モジュール (12)
クラス
-
MonitorMixin
:: ConditionVariable (60) - SignalException (36)
- Thread (12)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) - Monitor (12)
- MonitorMixin (12)
-
NEWS for Ruby 2
. 0 . 0 (12) -
NEWS for Ruby 3
. 0 . 0 (5) - Status (12)
- broadcast (12)
-
handle
_ interrupt (12) - new (36)
-
ruby 1
. 8 . 4 feature (12) - wait (12)
-
wait
_ until (12) -
wait
_ while (12)
検索結果
先頭5件
-
MonitorMixin
:: ConditionVariable # signal -> () (21101.0) -
その条件変数で待っているスレッドがあれば実行を再開させます。
...その条件変数で待っているスレッドがあれば実行を再開させます。
複数のスレッドが待っている場合には1つのスレッドのみ
実行を再開します。
@see MonitorMixin::ConditionVariable#broadcast... -
MonitorMixin (6018.0)
-
スレッドの同期機構としてのモニター機能を提供するモジュールです。
.../オブジェクトに
モニタ機能を追加します。
=== 例
//emlist[消費者、生産者問題の例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin) # 配列にモニタ機能を追加
empty_cond = buf.new_cond # 配列が空であるかないかを通知する条件変数......ロックする
buf.push(line) # 配列を変更(追加)
empty_cond.signal # 配列に要素が追加されたことを条件変数を通して通知
end # ここでロックを開放
end
//}
=== 初期化
MonitorMixin は初期化される必要があります。
上の例のように O......を使って利用する場合は
自動的に初期化されます。
//emlist[extend する例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin)
//}
しかし、MonitorMixin をクラス定義の際に Module#include を使って
利用する場合は、initialize メソッドで super... -
Monitor (6006.0)
-
スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。
...きる Mutex としての機能も提供します。
MonitorMixin を include し、いくつかの別名を定義したクラスです。
=== 例
//emlist[消費者、生産者問題の例][ruby]{
require 'monitor'
buf = []
mon = Monitor.new
empty_cond = mon.new_cond
# consumer
Thread.start do......GF.gets
mon.synchronize do
buf.push(line)
empty_cond.signal
end
end
//}
2回ロックしてもデッドロックにならない例です。
//emlist[デッドロックにならない例][ruby]{
require 'monitor'
mon = Monitor.new
mon.synchronize {
mon.synchronize {
}
}
//}
Thread:... -
SignalException
. new(sig _ name) -> SignalException (3136.0) -
引数で指定したシグナルに関する SignalException オブジェクトを生成して返 します。
...引数で指定したシグナルに関する SignalException オブジェクトを生成して返
します。
引数は Signal.#list に含まれるもののいずれかを指定する必要があり
ます。
@param sig_name シグナル名を Symbol オブジェクト、文字列のいずれ......した場合は to_int メソッドによる暗黙の型変換を試み
ます。
//emlist[例][ruby]{
signal_number = Signal.list["INT"]
se = SignalException.new(signal_number) # => #<SignalException: SIGINT>
se.signo # => 2
//}
//emlist[例][ruby]{
se = SignalException.new("INT......") # => #<SignalException: SIGINT>
se.signm # => "SIGINT"
//}
@see Signal.#list... -
SignalException
. new(sig _ number) -> SignalException (3136.0) -
引数で指定したシグナルに関する SignalException オブジェクトを生成して返 します。
...引数で指定したシグナルに関する SignalException オブジェクトを生成して返
します。
引数は Signal.#list に含まれるもののいずれかを指定する必要があり
ます。
@param sig_name シグナル名を Symbol オブジェクト、文字列のいずれ......した場合は to_int メソッドによる暗黙の型変換を試み
ます。
//emlist[例][ruby]{
signal_number = Signal.list["INT"]
se = SignalException.new(signal_number) # => #<SignalException: SIGINT>
se.signo # => 2
//}
//emlist[例][ruby]{
se = SignalException.new("INT......") # => #<SignalException: SIGINT>
se.signm # => "SIGINT"
//}
@see Signal.#list... -
SignalException
. new(sig _ number , sig _ name) -> SignalException (3136.0) -
引数で指定したシグナルに関する SignalException オブジェクトを生成して返 します。
...引数で指定したシグナルに関する SignalException オブジェクトを生成して返
します。
引数は Signal.#list に含まれるもののいずれかを指定する必要があり
ます。
@param sig_name シグナル名を Symbol オブジェクト、文字列のいずれ......した場合は to_int メソッドによる暗黙の型変換を試み
ます。
//emlist[例][ruby]{
signal_number = Signal.list["INT"]
se = SignalException.new(signal_number) # => #<SignalException: SIGINT>
se.signo # => 2
//}
//emlist[例][ruby]{
se = SignalException.new("INT......") # => #<SignalException: SIGINT>
se.signm # => "SIGINT"
//}
@see Signal.#list... -
MonitorMixin
:: ConditionVariable # broadcast -> () (3006.0) -
その条件変数で 待っている全てのスレッドの実行を再開します。
...その条件変数で
待っている全てのスレッドの実行を再開します。
@see MonitorMixin::ConditionVariable#signal... -
MonitorMixin
:: ConditionVariable # wait(timeout = nil) -> bool (3006.0) -
モニタのロックを開放し、現在のスレッドを停止します。
...ドを停止します。
これを呼ぶスレッドはモニタのロックを保持している必要があります。
MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast
で起こされるまでスレッドは停止し続けます。
timeout を与えた場合......での秒数。指定しなかった場合はタイムアウトしません。
@raise ThreadError ロックを持っていないスレッドがこのメソッドを呼びだした場合に発生します
@see MonitorMixin::ConditionVariable#wait_while, MonitorMixin::ConditionVariable#wait_until... -
MonitorMixin
:: ConditionVariable # wait _ until { . . . } -> () (3006.0) -
モニタのロックを開放し、現在のスレッドを ブロックで指定した条件を満たすまで停止します。
...のロックを開放し、現在のスレッドを
ブロックで指定した条件を満たすまで停止します。
MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
そ......の結果によってこのメソッドから抜け処理を継続するか
再びロックを開放しスレッドを停止するかを決めます。
@see MonitorMixin::ConditionVariable#wait...