るりまサーチ

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

別のキーワード

  1. _builtin new
  2. _builtin inspect
  3. _builtin []
  4. _builtin to_s
  5. _builtin each

ライブラリ

モジュール

キーワード

検索結果

<< 1 2 3 ... > >>

Thread.new(*arg) {|*arg| ... } -> Thread (39226.0)

スレッドを生成して、ブロックの評価を開始します。 生成したスレッドを返します。

...
スレッド
を生成して、ブロックの評価を開始します。
生成したスレッドを返します。

@param arg 引数 arg はそのままブロックに渡されます。スレッドの開始と同時にその
スレッド
固有のローカル変数に値を渡すため...
...ます。

@raise ThreadError 現在のスレッドが属する ThreadGroup が freeze されている場合に発生します。またブロックを与えられずに呼ばれた場合にも発生します。

注意:

例えば、以下のコードは間違いです。スレッドの実行が開...
...始される前に
変数 i が書き変わる可能性があるからです。

for i in 1..5
Thread.new
{ p i }
end

上の例は以下のように書き直すべきです。

for i in 1..5
Thread.new
(i) {|t| p t }
end...

Thread (38124.0)

スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。

...スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Thread
を使うことで並行プログラミングが可能になります。


=== 実装
ネイティブスレッドを用いて実装されていますが、...
...おり、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ラ...
...リから GVL を操作できるので、複数のスレッド
同時に実行するような拡張ライブラリは作成可能です。

=== スケジューリング
Ruby のスレッドスケジューリングはネイティブスレッドのそれを利用しています。
よって詳細...

Thread#thread_variable_get(key) -> object | nil (27197.0)

引数 key で指定した名前のスレッドローカル変数を返します。

...名前のスレッドローカル変数を返します。

[注意]: Thread#[] でセットしたローカル変数(Fiber ローカル変数)と
異なり、Fiber を切り替えても同じ変数を返す事に注意してください。

例:

Thread.new
{
Thread
.current.thread_variable_set...
...("foo", "bar") # スレッドローカル
Thread
.current["foo"] = "bar" # Fiber ローカル

Fiber.new {
Fiber.yield [
Thread
.current.thread_variable_get("foo"), # スレッドローカル
Thread
.current["foo"], # Fiber ローカ...
...]
}.resume
}.join.value # => ['bar', nil]

この例の "bar" は Thread#thread_variable_get により得られ
た値で、nil はThread#[] により得られた値です。

@see Thread#thread_variable_set, Thread#[]

@see https://magazine.rubyist.net/articles/0041/0041-200Special-note...

Thread#thread_variable_set(key, value) (27173.0)

引数 key で指定した名前のスレッドローカル変数に引数 value をセットしま す。

...引数 key で指定した名前のスレッドローカル変数に引数 value をセットしま
す。

[注意]: Thread#[] でセットしたローカル変数(Fiber ローカル変数)と
異なり、セットした変数は Fiber を切り替えても共通で使える事に注意してく...
...

//emlist[例][ruby]{
thr = Thread.new do
Thread
.current.thread_variable_set(:cat, 'meow')
Thread
.current.thread_variable_set("dog", 'woof')
end
thr.join # => #<Thread:0x401b3f10 dead>
thr.thread_variables # => [:dog, :cat]
//}

@see Thread#thread_variable_get, Thread#[]...

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

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

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

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

使用例
require 'thwait'

thread
s = []
5.times {|i|
thread
s << 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>...

絞り込み条件を変える

ThreadGroup.new -> ThreadGroup (21285.0)

新たな ThreadGroup を生成して返します。

...たな ThreadGroup を生成して返します。

//emlist[例][ruby]{
thread
_group = ThreadGroup.new
thread
_group.add Thread.new { sleep 0.1; Thread.new { sleep 1 }; sleep 1 }
thread
_group.add Thread.new { sleep 2 }
sleep 0.5
thread
_group.list # => [#<Thread:0x007fc6f1842d70 sleep>, #<Thread:0x007...
...fc6f1842c80 sleep>, #<Thread:0x007fc6f080dba8 sleep>]
//}...

Thread.kill(thread) -> Thread (21270.0)

指定したスレッド thread に対して Thread#exit を呼びます。終了したスレッドを返します。

...指定したスレッド thread に対して Thread#exit を呼びます。終了したスレッドを返します。

@param thread 終了したい Thread オブジェクトを指定します。

th = Thread.new do
end

p Thread.kill(th) #=> #<Thread:0x40221bc8 dead>...

Thread::Queue.new -> Thread::Queue (21222.0)

新しいキューオブジェクトを生成します。

...新しいキューオブジェクトを生成します。

@param items 初期値を Enumerable で指定します。

//emlist[][ruby]{
q = Queue.new
q = Queue.new([a, b, c])
q = Queue.new(items)
//}...

Thread::Queue.new(items) -> Thread::Queue (21222.0)

新しいキューオブジェクトを生成します。

...新しいキューオブジェクトを生成します。

@param items 初期値を Enumerable で指定します。

//emlist[][ruby]{
q = Queue.new
q = Queue.new([a, b, c])
q = Queue.new(items)
//}...

Thread::SizedQueue.new(max) -> Thread::SizedQueue (21218.0)

Thread::SizedQueue オブジェクトを生成します。

...Thread::SizedQueue オブジェクトを生成します。

@param max キューのサイズの最大値です。...

絞り込み条件を変える

Thread::ConditionVariable.new -> Thread::ConditionVariable (21202.0)

状態変数を生成して返します。

状態変数を生成して返します。
<< 1 2 3 ... > >>