Я бы держался подальше от многопоточных приложений в Ruby, если вы не используете JRuby. Рубиновые потоки не являются нативными, и по моему опыту они действительно работают очень плохо. Кроме того, менеджер памяти Ruby оставляет желать лучшего, поэтому разделение по процессам, а не по потокам оказывается гораздо более готовым к работе подходом.
JRuby - это другая история. Он использует потоки Java, которые преобразуются в собственные потоки, и использует сборщик мусора Java, что превосходно.