クラス
- Exception (12)
- Fiber (24)
- IO (120)
- Monitor (18)
- Mutex (6)
- Thread (186)
-
Thread
:: Mutex (40) - ThreadGroup (12)
- ThreadsWait (6)
- TracePoint (12)
モジュール
- Marshal (24)
- ObjectSpace (12)
- Process (24)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) - Fiber (12)
-
NEWS for Ruby 2
. 0 . 0 (12) -
NEWS for Ruby 2
. 5 . 0 (8) -
NEWS for Ruby 2
. 7 . 0 (6) -
NEWS for Ruby 3
. 0 . 0 (5) - Thread (12)
- add (12)
-
backtrace
_ locations (12) -
clock
_ gettime (12) -
count
_ tdata _ objects (12) - detach (12)
- dump (24)
- eof (12)
- eof? (12)
- exit (12)
- fetch (8)
- fork (12)
-
handle
_ interrupt (12) - join (24)
- lock (12)
-
mon
_ exit (6) - name= (10)
- new (24)
-
next
_ wait (6) -
pending
_ interrupt? (12) - pipe (96)
- raise (12)
-
rb
_ thread _ raise (12) -
rb
_ thread _ raise _ m (12) -
rb
_ thread _ signal _ raise (12) -
report
_ on _ exception (18) -
report
_ on _ exception= (18) - resume (12)
-
rinda
/ rinda (12) -
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 4 feature (12) - run (12)
- sleep (12)
- start (12)
- status (12)
- synchronize (10)
- transfer (12)
- unlock (12)
- wakeup (12)
- スレッド (12)
検索結果
先頭5件
-
static VALUE rb
_ thread _ raise(int argc , VALUE *argv , rb _ thread _ t th) (12300.0) -
-
static VALUE rb
_ thread _ raise _ m(int argc , VALUE *argv , VALUE thread) (12300.0) -
-
void rb
_ thread _ signal _ raise(char *sig) (12200.0) -
-
ThreadGroup
# add(thread) -> self (3183.0) -
スレッド thread が属するグループを自身に変更します。
...レッド thread が属するグループを自身に変更します。
@param thread 自身に加えたいスレッドを指定します。
@raise ThreadError 自身が freeze されているか enclose されている場合に、発生します。また引数 thread が属する ThreadGroup が......s #{ThreadGroup::Default.list}"
# => Initial group is [#<Thread:0x4a49168 run>]
tg = ThreadGroup.new
t1 = Thread.new { sleep }
t2 = Thread.new { sleep }
puts "t1 is #{t1}" # => t1 is #<Thread:0x50bef60>
puts "t2 is #{t2}" # => t2 is #<Thread:0x50beed0>
tg.add(t1)
puts "Initial group now #{ThreadGro......up::Default.list}"
# => Initial group now [#<Thread:0x3039168 run>, #<Thread:0x50beed0 run>]
puts "tg group now #{tg.list}"
# => tg group now [#<Thread:0x50bef60 run>]
//}... -
ThreadsWait
# next _ wait(nonblock = nil) -> Thread (3119.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... -
スレッド (3118.0)
-
スレッド スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Ruby ではスレッドはThread クラスのインスタンスとして表されます。
...スレッド
スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Ruby ではスレッドはThread クラスのインスタンスとして表されます。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装......レッドを Thread#join で待っている他の
スレッドがある場合、その待っているスレッドに対して、同じ例外が再度
発生します。
begin
t = Thread.new do
Thread.pass # メインスレッドが確実にjoinするように
raise "unhandled e......ン 付きで起動した場合も同様。
(オプションの詳細に関してはspec/rubycmd を参照)
* Thread.abort_on_exception でフラグを設定する。
* Thread#abort_on_exception で指定
したスレッドのフラグを設定する。
上記3つのいずれかが設... -
Thread
:: Mutex # lock -> self (3012.0) -
mutex オブジェクトをロックします。一度に一つのス レッドだけが mutex をロックできます。既にロックされている mutex に対してロックを行おうとしたスレッドは mutex のロックが解放さ れるまで、実行が停止されます。
...ます。
@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
@see Thread::Mutex#unloc... -
Thread
:: Mutex # sleep(timeout = nil) -> Integer (3012.0) -
与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
...プする秒数を指定します。省略するとスリープし続けます。
@return スリープしていた秒数を返します。
@raise ThreadError 自身がカレントスレッドによってロックされていない場合に発生します。
[注意] 2.0 以降ではスリープ......グナルを受信した場合などに実行が再
開(spurious wakeup)される場合がある点に注意してください。
//emlist[例][ruby]{
m = Mutex.new
th = Thread.new do
m.lock
m.sleep(2)
end
th.status # => "run"
sleep 1
th.status # => "sleep"
sleep 1
th.status # => false
//}......リープし続けます。
@return タイムアウトした時は nil を、それ以外はスリープしていた秒数を返します。
@raise ThreadError 自身がカレントスレッドによってロックされていない場合に発生します。
[注意] 2.0 以降ではスリープ... -
Thread
:: Mutex # unlock -> self (3012.0) -
mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。
...は出来ません。
ロックしたスレッド以外から unlock が呼ばれると ThreadError が発生します。
m = Mutex.new
m.lock
Thread.new do
m.unlock # => ThreadError
end.join
@raise ThreadError self がロックされていない場合や self をロックしたス... -
Thread
:: Mutex # synchronize { . . . } -> object (3006.0) -
mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。
...クを実行します。実行後に必ず mutex のロックを解放します。
ブロックが最後に評価した値を返します。
@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、...