>>171 のをちょと改造してみた
sleepが1秒で、1万スレッドが切り替わりまくっても、Core2Duo 1.86GHzのCPU使用率は1%だった。
スレッド全部作り終わるまでは、1秒sleepなのに1.05秒以上かかるケースがちょろちょろあったけど、
スレッド作り終わった後は安定してる。
Ruby1.8で同じ事やったらスレッド切り替えだけでCPU100%使うだろうし、Ruby 1.9でもやっぱり
GCのせいで安定した応答性能を実現できないだろうな。

import threading
from time import time, sleep
def foo():
    while True:
        t = time()
        sleep(1)
        t = time() - t
        if t > 1.05:
            print t
for _ in xrange(10000):
    t = threading.Thread(target=foo)
    t.daemon = True
    t.start()
print "100000 threads are created."
sleep(1000)