В общем случае принудительная остановка потоков или всегда противопоказана, поскольку вы не можете гарантировать чистое освобождение ресурсов и блокировки, которые удерживает поток. Так что Ник прав, переменная, указывающая, что пора потоку самому закрывать , обычно лучше.
Однако в вашем случае, вероятно, нет другого варианта, кроме как принудительно уничтожить поток. Самым безопасным маршрутом будет поток # поднять что-то в потоке, чтобы обеспечить нормальную обработку исключений и обеспечить блоки для очистки ресурсов. Но, конечно, это может быть спасено пользователем. Тем не менее, JRuby должен также запускать блоки обеспечения в ответ на неустранимое уничтожение Thread #. В любом случае вы не можете гарантировать, что не прерываете выполнение блока обеспечения, но для вашего случая это приемлемый риск.