63件ヒット
[1-63件を表示]
(0.028秒)
種類
- インスタンスメソッド (30)
- 文書 (11)
- クラス (11)
- モジュール (11)
クラス
-
Thread
:: Queue (11) -
Thread
:: SizedQueue (7) - ThreadsWait (12)
キーワード
- Monitor (11)
- MonitorMixin (11)
- Ruby用語集 (11)
-
next
_ wait (6)
検索結果
先頭5件
-
ThreadsWait
# empty? -> bool (21125.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? #=> false... -
Thread
:: Queue # empty? -> bool (21119.0) -
キューが空の時、真を返します。
...キューが空の時、真を返します。
//emlist[例][ruby]{
require 'thread'
q = Queue.new
q.empty? # => true
q.push(:resource)
q.empty? # => false
//}......キューが空の時、真を返します。
//emlist[例][ruby]{
q = Queue.new
q.empty? # => true
q.push(:resource)
q.empty? # => false
//}... -
Thread
:: SizedQueue # empty? -> bool (21101.0) -
キューが空の時、真を返します。
キューが空の時、真を返します。 -
ThreadsWait
# next _ wait(nonblock = nil) -> Thread (3113.0) -
指定したスレッドのどれかが終了するまで待ちます。
...外 ThreadsWait::ErrNoFinishedThread が発生します。
@raise ErrNoWaitingThread 終了をまつスレッドが存在しない時、発生します。
@raise 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_wait
p th
end
@see Queue#pop... -
Ruby用語集 (30.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 (18.0)
-
スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。
...問題の例][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 (12.0)
-
スレッドの同期機構としてのモニター機能を提供するモジュールです。
...y_cond = buf.new_cond # 配列が空であるかないかを通知する条件変数
# consumer
Thread.start do
loop do
buf.synchronize do # ロックする
empty_cond.wait_while { buf.empty? } # 配列が空である間はロックを開放して待つ
print buf.shift # 配列が...