Dlaczego to działa, jakby nie było wątku?

Piszę skrypt, który będzie pingował mój zasięg IP. Oto, co mam do tej pory:

lines = `ipconfig`.split("\n")
thr = []
ip_line = lines.detect { |l| l=~/Ip Address/i }
matcher = /\d+\.\d+\.\d+\.\d+/.match(ip_line)
if matcher.length > 0
    address = matcher[0]
    address.sub!(/\.\d+$/,"")
    (1 .. 254).each do |i|
        xaddr = address + "." + i.to_s
        puts "pinging #{xaddr}"
        thr << Thread.new {
            `ping #{xaddr}` 
        }
    end

    thr.each do |t|
        t.join
        output = t.value
        puts output
    end
end

Chodzi o to, że działa bardzo wolno. Podobnie jak aplikacja nie jest gwintowana. Dlaczego? Zauważyłem, że jeśli podklasuję wątek, cała rzecz działa dużo, dużo szybciej. Co jest nie tak? Czy wątek nie jest przeznaczony do bezpośredniego użytku?

questionAnswers(4)

yourAnswerToTheQuestion