темы или несколько процессов? - PullRequest
3 голосов
/ 27 октября 2009

более эффективно запускать несколько экземпляров сценария ruby? или несколько потоков в этом одном скрипте?

возьмем, к примеру, скрипт ruby ​​для проверки работы всех ссылок данного домена.

Вы бы запустили несколько экземпляров этого скрипта или несколько потоков?

как создать несколько потоков?

1 Ответ

3 голосов
/ 27 октября 2009

«Эффективность» может означать много вещей. Для 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 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...