«Эффективность» может означать много вещей. Для Ruby <1.9 <a href="http://en.wikipedia.org/wiki/Green_threads" rel="nofollow noreferrer"> зеленые потоки означают, что вы не получите столько параллелизма, сколько могли бы подумать о потоках, поэтому использование нескольких экземпляров сценария было бы наилучшим способом минимизации общего реального времени от начала до отделка.
Что касается их создания, вот Книга Кирки Пример загрузки страниц "параллельно":
require 'net/http'
pages = %w( www.rubycentral.com
www.awl.com
www.pragmaticprogrammer.com
)
threads = []
for page in pages
threads << Thread.new(page) { |myPage|
h = Net::HTTP.new(myPage, 80)
puts "Fetching: #{myPage}"
resp, data = h.get('/', nil )
puts "Got #{myPage}: #{resp.message}"
}
end
threads.each { |aThread| aThread.join }