in_threads
Easily execute ruby code in parallel.
Installation
gem install in_threads
Usage
By default there is maximum of 10 simultaneous threads
urls.in_threads.map do |url|
  url.fetch
end
urls.in_threads.each do |url|
  url.save_to_disk
end
numbers.in_threads(2).map do |number|
  # whery long and complicated formula
  # using only 2 threads
end
You can use any Enumerable method, but some of them can not use threads (inject, reduce) or don't use blocks (to_a, entries, drop, take, first, include?, member?) or have both problems depending on usage type (min, max, minmax, sort)
urls.in_threads.any?(&:ok?)
urls.in_threads.all?(&:ok?)
urls.in_threads.none?(&:error?)
urls.in_threads.grep(/example\.com/, &:fetch)
Copyright
Copyright (c) 2010-2013 Ivan Kuchin. See LICENSE.txt for details.