Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Threadクラス > new

singleton method Thread.new

new(*arg) {|*arg| ... } -> Thread[permalink][rdoc]

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

[PARAM] arg:
引数 arg はそのままブロックに渡されます。スレッドの開始と同時にその スレッド固有のローカル変数に値を渡すために使用します。
[EXCEPTION] 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