Несколько потоков, вызывающих одну и ту же функцию
Предположим, у нас есть несколько потоков, все из которых вызывают одну и ту же функцию:
<code>def foo # do stuff ... end 100.times do |i| Thread.new do foo end end </code>
Если два или более потоков в настоящее время находятся внутриfoo
имеют ли они одинаковые локальные переменные внутриfoo
?
Это касается моего второго вопроса. Есть ли у потоков отдельные кадры стека или они совместно используют кадры стека в одном процессе? В частности, когда каждый поток вызывает несколькоfoo
и раньшеfoo
возвращается, есть ли несколько копийfoo
в стеке, каждый со своими локальными переменными, или есть только одна копияfoo
в стеке?