我在 Ruby 中有一个线程。它运行一个循环。当该循环到达 sleep(n) 时,它会停止并且永远不会醒来。如果我在没有 sleep(n) 的情况下运行循环,它将作为无限循环运行。
代码中发生了什么以阻止线程按预期运行?我如何解决它?
class NewObject
def initialize
@a_local_var = 'somaText'
end
def my_funk(a_word)
t = Thread.new(a_word) do |args|
until false do
puts a_word
puts @a_local_var
sleep 5 #This invokes the Fail
end
end
end
end
if __FILE__ == $0
s = NewObject.new()
s.my_funk('theWord')
d = gets
end
我的平台是 Windows XP SP3
我安装的 ruby 版本是 1.8.6