2013-09-04 32 views
6

Tôi có đoạn mã này:Tại sao thoát khỏi một chuỗi Ruby giết toàn bộ chương trình của tôi?

puts "Start" 
loop do 
    Thread.start do 
     puts "Hello from thread" 
     exit 
    end 
    text = gets 
    puts "#{text}" 
end 
puts "Done" 

Những gì tôi mong chờ được nhìn thấy "Start" tiếp theo là "Xin chào từ chủ đề" và sau đó tôi có thể nhập vào đó sẽ được lặp lại với tôi. Thay vào đó tôi nhận được "Start" và "Hello from thread" và sau đó thoát khỏi chương trình.

Từ các tài liệu trên exit:

Chấm dứt Thr và lịch trình thread khác để chạy. Nếu chủ đề này đã được đánh dấu là bị giết, thoát sẽ trả về Chủ đề. Nếu đây là chủ đề chính hoặc luồng cuối cùng, hãy thoát khỏi quy trình.

Nhưng tôi nghĩ tôi đã sinh ra một chuỗi mới? Tại sao nó thoát khỏi quá trình chính của tôi?

Trả lời

8

Bạn đang xem tài liệu Thread#exit. killKernel#exit kết thúc tập lệnh Ruby.

puts "Start" 
loop do 
    Thread.start do 
     puts "Hello from thread" 
     Thread.exit 
    end 
    text = gets 
    puts "#{text}" 
end 
puts "Done" 
Các vấn đề liên quan