Mam ten fragment kodu:Dlaczego zamknięcie wątku rubinowego zabija cały mój program?
puts "Start"
loop do
Thread.start do
puts "Hello from thread"
exit
end
text = gets
puts "#{text}"
end
puts "Done"
co by się spodziewać widzi „Start”, a następnie „Hello z nici” i wtedy będę mógł wejść wejście, które będzie się echem z powrotem do mnie. Zamiast tego otrzymuję "Start" i "Hello from thread", a następnie program wychodzi.
Z dokumentacji na exit
:
Kończy progu i harmonogramów innym wątku do uruchomienia. Jeśli ten wątek jest już oznaczony jako zabity, exit zwraca wątek. Jeśli jest to główny wątek lub ostatni wątek kończy proces.
Ale myślałem, że stworzyłem nowy wątek? Dlaczego wychodzi z mojego głównego procesu?