From: Philip Mak Date: 2002-06-12T02:18:56+09:00 Subject: My informal experiment with abusing threads require 'thread' i = 0 threads = [] while i < 100000 threads << Thread.new(i) { |i| puts "This is thread #{i}" } i += 1 end threads.each do |t|; t.join; end --- I read an article about weightless threads in Python (http://www-106.ibm.com/developerworks/library/l-pythrd.html) that said it could create 100,000 weightless threads on a 366MHz Pentium II with 64 MB of RAM in 10 seconds, so I was curious to see how Ruby's threads (Thread class) would compare. It looked like each thread in Ruby would take up about 15k of RAM, which would make 100,000 threads kill my machine (Athlon AMD 1GHz with 512 MB of RAM) due to insufficient RAM to hold everything. I also wrote another program that would sleep(1000) in each thread, and noticed that as the number of threads got higher, the program was slower to create new threads (it slowed to a crawl at around 3000 threads). It looks like on hardware like mine, Ruby could handle the overhead of 1000 threads with no problem, though.