Когда вам нужно передать аргументы `Thread.new`?

Локальные переменные, определенные вне потока, кажутся видимыми изнутри, так что следующие два использованияThread.new похоже одинаковые

a = :foo
Thread.new{puts a} # => :foo
Thread.new(a){|a| puts a} # => :foo

документ дает пример:

arr = []
a, b, c = 1, 2, 3
Thread.new(a,b,c){|d, e, f| arr << d << e << f}.join
arr #=> [1, 2, 3]

но с тех порa, b, c видны изнутри созданного потока, это также должно быть так же, как:

arr = []
a, b, c = 1, 2, 3
Thread.new{d, e, f = a, b, c; arr << d << e << f}.join
arr #=> [1, 2, 3]

Есть ли разница? Когда вам нужно передать локальные переменные в качестве аргументовThread.new?

Ответы на вопрос(1)

Ваш ответ на вопрос