我有这段代码:
puts "Start"
loop do
Thread.start do
puts "Hello from thread"
exit
end
text = gets
puts "#{text}"
end
puts "Done"
我期望看到“开始”,然后是“来自线程的你好”,然后我可以输入会回显给我的输入。相反,我得到“Start”和“Hello from thread”,然后程序退出。
从文档上exit
:
终止 thr 并安排另一个线程运行。如果这个线程
已被标记为被杀死,退出返回该线程。如果这是
主线程或最后一个线程退出进程。
但我以为我产生了一个新线程?为什么它退出我的主进程?
你正在看的是Thread#exit http://ruby-doc.org/core-2.0/Thread.html#method-i-exit文档。kill
is Kernel#exit http://www.ruby-doc.org/core-2.0.0/Kernel.html#method-i-exit这将终止 Ruby 脚本。
puts "Start"
loop do
Thread.start do
puts "Hello from thread"
Thread.exit
end
text = gets
puts "#{text}"
end
puts "Done"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)