假设我们有多个线程都调用相同的函数:
def foo
# do stuff ...
end
100.times do |i|
Thread.new do
foo
end
end
Run Code Online (Sandbox Code Playgroud)
如果当前有两个或多个线程foo,那么它们各自共享相同的局部变量foo吗?
这与我的第二个问题有关.线程是否具有单独的堆栈帧,或者它们是否在单个进程中共享堆栈帧?具体来说,当每个调用多个线程foo并foo返回之前,foo堆栈上是否有多个副本,每个副本都有自己的局部变量,或者foo堆栈中只有一个副本?