45件ヒット
[1-45件を表示]
(0.017秒)
種類
- インスタンスメソッド (12)
- 文書 (11)
- クラス (11)
- モジュール (11)
クラス
- ThreadsWait (12)
キーワード
- Monitor (11)
- MonitorMixin (11)
- Ruby用語集 (11)
-
next
_ wait (6)
検索結果
先頭5件
-
ThreadsWait
# empty? -> bool (21141.0) -
同期されるスレッドが存在するならば true をかえします。
...るスレッドが存在するならば true をかえします。
使用例
require 'thwait'
threads = []
3.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new
p thall.threads.empty? #=> true
thall.join(*threads)
p thall.threads.empty? #=>... -
ThreadsWait
# next _ wait(nonblock = nil) -> Thread (3135.0) -
指定したスレッドのどれかが終了するまで待ちます。
...指定したスレッドのどれかが終了するまで待ちます。
@param nonblock true を与えると、キューが空の時、例外 ThreadsWait::ErrNoFinishedThread が発生します。
@raise ErrNoWaitingThread 終了をまつスレッドが存在しない時、発生します。
@r......aise ErrNoFinishedThread nonblock がtrue でかつ、キューが空の時、発生します。
#使用例
require 'thwait'
threads = []
2.times {|i|
threads << Thread.new { sleep i }
}
thall = ThreadsWait.new
thall.join_nowait(*threads)
until thall.empty?
th = thall.next... -
Ruby用語集 (96.0)
-
Ruby用語集 A B C D E F G I J M N O R S Y
...は、長さが 0 のインスタンスを「空文字列」と呼ぶ。
空であることを確認するメソッドの名前にしばしば empty? が使われる。
: 仮引数
: formal argument
メソッド定義において、メソッド呼び出しで与えられた実引数を
受......↔サブクラス
→継承
: スレッド
: thread
同時に存在して並行的に実行されうる制御の流れ。スレッド間でメモリーは共有される。
参照:spec/thread
: スレッドセーフ
: thread safe
複数のスレッドが並行に実行されても問......スレッドローカル
: thread local
変数のスコープなどがスレッドごとに別々であること。
例えば特殊変数のうち $0(現在実行中のスクリプトのファイル名)は
グローバルスコープであり、どのスレッドから参照しても同... -
Monitor (50.0)
-
スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。
...スレッドの同期機構としてのモニター機能を提供するクラスです。
また同じスレッドから何度も lock できる Mutex としての機能も提供します。
MonitorMixin を include し、いくつかの別名を定義したクラスです。
=== 例
//emlist[......問題の例][ruby]{
require 'monitor'
buf = []
mon = Monitor.new
empty_cond = mon.new_cond
# consumer
Thread.start do
loop do
mon.synchronize do
empty_cond.wait_while { buf.empty? }
print buf.shift
end
end
end
# producer
while line = ARGF.gets
mon.synchronize do
buf......'monitor'
mon = Monitor.new
mon.synchronize {
mon.synchronize {
}
}
//}
Thread::Mutex ではデッドロックになります。
//emlist[Mutex でデッドロックになる例][ruby]{
mx = Mutex.new
mx.synchronize {
mx.synchronize {
}
}
# => deadlock; recursive locking (ThreadError)
//}... -
MonitorMixin (28.0)
-
スレッドの同期機構としてのモニター機能を提供するモジュールです。
...スレッドの同期機構としてのモニター機能を提供するモジュールです。
クラスに Module#include したり、オブジェクトに
Object#extend したりすることでそのクラス/オブジェクトに
モニタ機能を追加します。
=== 例
//emlist[消費......y_cond = buf.new_cond # 配列が空であるかないかを通知する条件変数
# consumer
Thread.start do
loop do
buf.synchronize do # ロックする
empty_cond.wait_while { buf.empty? } # 配列が空である間はロックを開放して待つ
print buf.shift # 配列が...