Вам не нужно вручную удалять поток, я думаю, и вы должны использовать потоки ruby, исходя из того, что я понял, что они являются потоками java в jruby, а именно из того, что jruby получает, это хорошая производительность.
Обычная вещь, которую нужно сделать, - это раскрутить пару потоков, а затем присоединиться ко всем, прежде чем продолжить, если вы хотите быть уверены, что все завершены до следующего шага, но здесь это не требуется.
Вот небольшая тестовая программа:
# foo.rb
a = Thread.new { print "a"; sleep(1); print "b"; print "c" }
require 'pp'
pp Thread.list
puts "foo"
sleep(2);
pp Thread.list
puts "bar"
Как видите, порожденная фоновая нить автоматически удаляется. (Проверено в jruby, а также 1.9.2
$ ruby foo.rb
a[#<Thread:0x00000100887678 run>, #<Thread:0x0000010086c7d8 sleep>]
foo
bc[#<Thread:0x00000100887678 run>]
bar