Ruby 1.8 "multithreading" is not real multithreading. It ends up that the entire VM blocks on any I/O. Well, hell.
Discovered (and probably soon solved) by rancorbeast.
Other guy's ideas: http://timetobleed.com/fixing-threads-in-ruby-18-a-2-10x-performance-boost/
(Just fixes the performance issue, not the fact that they don't provide useful concurrency.)