るりまサーチ

最速Rubyリファレンスマニュアル検索!
171件ヒット [1-100件を表示] (0.061秒)

別のキーワード

  1. スレッド thread
  2. スレッド
  3. スレッド spec/terminate
  4. スレッド spec/rubycmd

ライブラリ

クラス

検索結果

<< 1 2 > >>

ThreadsWait#threads -> Array (30271.0)

同期されるスレッドの一覧を配列で返します。

...スレッドの一覧を配列で返します。

使用例
require 'thwait'

threads
= []
3.times {|i|
threads
<< Thread.new { sleep 1; p Thread.current }
}

thall = ThreadsWait.new(*threads)
p thall.threads
#=> [#<Thread:0x21750 sleep>, #<Thread:0x216c4 sleep>, #<Thread:0x2163...

Thread#value -> object (21136.0)

スレッド self が終了するまで待ち(Thread#join と同じ)、 そのスレッドのブロックが返した値を返します。スレッド実行中に例外が 発生した場合には、その例外を再発生させます。

...
スレッド
self が終了するまで待ち(Thread#join と同じ)、
そのスレッドのブロックが返した値を返します。スレッド実行中に例外が
発生した場合には、その例外を再発生させます。

スレッド
Thread#kill によって終了した場合...
...したすべてのスレッドの終了を待ち結果を出力する例です。

threads
= []
threads
.push(Thread.new { n = rand(5); sleep n; n })
threads
.push(Thread.new { n = rand(5); sleep n; n })
threads
.push(Thread.new { n = rand(5); sleep n; n })

threads
.each {|t| p t.value}...
...最後の行で、待ち合わせを行っていることがわかりにくいと思うなら以下
のように書くこともできます。

threads
.each {|t| p t.join.value}...

Thread#join -> self (21092.0)

スレッド self の実行が終了するまで、カレントスレッドを停止し ます。self が例外により終了していれば、その例外がカレントス レッドに対して発生します。

...
スレッド
self の実行が終了するまで、カレントスレッドを停止し
ます。self が例外により終了していれば、その例外がカレント
レッド
に対して発生します。

limit を指定して、limit 秒過ぎても自身が終了しない場合、nil...
...raise ThreadError join を実行することによってデッドロックが起きる場合に発生します。またカレントスレッドを join したときにも発生します。

以下は、生成したすべてのスレッドの終了を待つ例です。

threads
= []
threads
.pus...
...h(Thread.new { n = rand(5); sleep n; n })
threads
.push(Thread.new { n = rand(5); sleep n; n })
threads
.push(Thread.new { n = rand(5); sleep n; n })

threads
.each {|t| t.join}...

Thread#join(limit) -> self | nil (21092.0)

スレッド self の実行が終了するまで、カレントスレッドを停止し ます。self が例外により終了していれば、その例外がカレントス レッドに対して発生します。

...
スレッド
self の実行が終了するまで、カレントスレッドを停止し
ます。self が例外により終了していれば、その例外がカレント
レッド
に対して発生します。

limit を指定して、limit 秒過ぎても自身が終了しない場合、nil...
...raise ThreadError join を実行することによってデッドロックが起きる場合に発生します。またカレントスレッドを join したときにも発生します。

以下は、生成したすべてのスレッドの終了を待つ例です。

threads
= []
threads
.pus...
...h(Thread.new { n = rand(5); sleep n; n })
threads
.push(Thread.new { n = rand(5); sleep n; n })
threads
.push(Thread.new { n = rand(5); sleep n; n })

threads
.each {|t| t.join}...

void rb_gc_mark_threads(void) (12216.0)

存在するスレッド全てをマークします。

...存在するスレッド全てをマークします。...

絞り込み条件を変える

ThreadsWait (12016.0)

複数スレッドの終了を待つ機能を提供します。

...複数スレッドの終了を待つ機能を提供します。...

ThreadsWait::ErrNoWaitingThread (12016.0)

終了を待つスレッドが存在しない時、発生します。

...終了を待つスレッドが存在しない時、発生します。

@see ThreadsWait#next_wait...

ThreadsWait.new(*threads) -> ThreadsWait (6535.0)

指定されたスレッドの終了をまつための、スレッド同期オブジェクトをつくります。

...スレッドの終了をまつための、スレッド同期オブジェクトをつくります。

@param threads 終了を待つスレッドを一つもしくは複数指定します。

使用例
require 'thwait'

threads
= []
5.times {|i|
threads
<< Thread.new { sleep 1; p Thread.c...
...= ThreadsWait.new(*threads)
thall.all_waits{|th|
printf("end %s\n", th.inspect)
}

# 出力例
#=> #<Thread:0x214bc run>
#=> #<Thread:0x21548 run>
#=> #<Thread:0x215d4 run>
#=> #<Thread:0x21660 run>
#=> #<Thread:0x21430 run>
#=> end #<Thread:0x214bc dead>
#=> end #<Thread:...
...0x21548 dead>
#=> end #<Thread:0x215d4 dead>
#=> end #<Thread:0x21660 dead>
#=> end #<Thread:0x21430 dead>...

ThreadsWait.all_waits(*threads) {|thread| ...} -> () (6437.0)

指定されたスレッドすべてが終了するまで待ちます。 ブロックが与えられた場合、スレッド終了時にブロックを評価します。

...されたスレッドすべてが終了するまで待ちます。
ブロックが与えられた場合、スレッド終了時にブロックを評価します。

@param threads 終了するまでまつスレッドを一つもしくは複数指定します。

require 'thwait'

threads
= []...
...5.times {|i|
threads
<< Thread.new { sleep 1; p Thread.current }
}
Threads
Wait.all_waits(*threads) {|th| printf("end %s\n", th.inspect) }

# 出力例
#=> #<Thread:0x21584 run>
#=> #<Thread:0x21610 run>
#=> #<Thread:0x2169c run>
#=> #<Thread:0x21728 run>
#=> #<Thread:0x214f8 run>...
...#=> end #<Thread:0x21584 dead>
#=> end #<Thread:0x21610 dead>
#=> end #<Thread:0x2169c dead>
#=> end #<Thread:0x21728 dead>
#=> end #<Thread:0x214f8 dead>...

ThreadsWait#join_nowait(*threads) -> () (6345.0)

終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。 しかし、実際には終了をまちません。

...を待つスレッドの対象として、threads で指定されたスレッドを指定します。
しかし、実際には終了をまちません。

@param threads 複数スレッドの終了を待つスレッドに指定されたthreadsを加えます。

require 'thwait'

threads
= []...
...5.times {|i|
threads
<< Thread.new { sleep 1; p Thread.current }
}

thall = ThreadsWait.new
p thall.threads #=> []
thall.join_nowait(*threads)
p thall.threads #=> [#<Thread:0x21638 sleep>, #<Thread:0x215ac sleep>, #<Thread:0x21520 sleep>, #<Thread:0x21494 sleep>, #<Thread:0x21408 sleep...

絞り込み条件を変える

ThreadsWait#join(*threads) -> () (6339.0)

終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。

...スレッドの対象として、threads で指定されたスレッドを指定します。

@param threads 複数スレッドの終了を待つスレッドに指定されたthreadsを加えます。

require 'thwait'

threads
= []
5.times {|i|
threads
<< Thread.new { sleep 1; p Thread.cu...
...rrent }
}

thall = ThreadsWait.new
p thall.threads #=> []
thall.join(*threads)
p thall.threads
#=> [#<Thread:0x216ec dead>, #<Thread:0x21660 dead>, #<Thread:0x215d4 dead>, #<Thread:0x214bc dead>]...

ThreadsWait.all_waits(*threads) -> () (6337.0)

指定されたスレッドすべてが終了するまで待ちます。 ブロックが与えられた場合、スレッド終了時にブロックを評価します。

...されたスレッドすべてが終了するまで待ちます。
ブロックが与えられた場合、スレッド終了時にブロックを評価します。

@param threads 終了するまでまつスレッドを一つもしくは複数指定します。

require 'thwait'

threads
= []...
...5.times {|i|
threads
<< Thread.new { sleep 1; p Thread.current }
}
Threads
Wait.all_waits(*threads) {|th| printf("end %s\n", th.inspect) }

# 出力例
#=> #<Thread:0x21584 run>
#=> #<Thread:0x21610 run>
#=> #<Thread:0x2169c run>
#=> #<Thread:0x21728 run>
#=> #<Thread:0x214f8 run>...
...#=> end #<Thread:0x21584 dead>
#=> end #<Thread:0x21610 dead>
#=> end #<Thread:0x2169c dead>
#=> end #<Thread:0x21728 dead>
#=> end #<Thread:0x214f8 dead>...

ThreadGroup (6164.0)

スレッドグループを表すクラスです。グループに属する Thread をまとめて 操作することができます。

...スレッドグループを表すクラスです。グループに属する Thread をまとめて
操作することができます。

Thread
は必ずいずれかひとつのスレッドグループに属します。
生成されたばかりの Thread は、生成した Thread のグループを...
...
メインスレッドはデフォルトでは ThreadGroup::Default に属します。

: 例:

生成したすべてのThreadが終了するのを待つ

5.times {
Thread
.new { sleep 1; puts "#{Thread.current} finished" }
}

(ThreadGroup::Default.list - [Thread.current]).e...
....join}

puts "all threads finished"

対象の Thread Thread を起こす可能性がある場合
(Thread.exclusive参照)

Thread
.exclusive do
(ThreadGroup::Default.list - [Thread.current]).each {|th| th.join}
end

=== ThreadGroup#freeze と ThreadGroup#enclose の違い...
<< 1 2 > >>