Во-первых, потоки никогда не делают ничего проще. Потоки применимы только для ускорения приложений. Потоки вносят множество новых сложностей, может показаться удобным описать несколько потоков выполнения, но это всегда усложняет жизнь.
Во-вторых, преждевременная оптимизация - корень всего зла. Не пытайтесь ускорить обработку файла, если вы не знаете, что это узкое место. Сделайте самое простое, что может сработать (но не проще).
В-третьих, многопоточность могла бы помочь, если бы процесс чтения файлов был независимым, чтобы нить могла обрабатывать файл, не беспокоясь о том, что делают другие потоки. Похоже, что это не так в вашем случае. Поскольку разные потоки должны будут общаться друг с другом, вы вряд ли увидите выигрыш в скорости при применении потоков.
В-четвертых, я не знаю Ruby и поэтому не могу комментировать, какие у него механизмы.