Ruby: Какие-нибудь драгоценные камни для объединения потоков? - PullRequest
2 голосов
/ 12 апреля 2010

Может ли кто-нибудь порекомендовать гем для объединения потоков?

Ответы [ 2 ]

4 голосов
/ 13 апреля 2010

Исходя из моего опыта, разветвление / объединение в пул процессов намного более эффективно, чем объединение в Ruby (при условии, что вам не нужно много с точки зрения взаимодействия потоков). Некоторое время назад я создал гем под названием process_pool, который является очень простым пулом процессов с очередью заданий на основе файлов (вы можете проверить это здесь: http://github.com/psyho/process_pool).

2 голосов
/ 23 ноября 2014

Я бы попробовал https://github.com/ruby-concurrency/concurrent-ruby/.

Это в основном порт абстракций java.util.concurrent (включая threadpools) к ruby ​​- кроме случаев, когда вы устанавливаете его под Jruby, он будет использовать java.util.concurrent Таким образом, вы можете написать код, который будет работать и делать то же самое семантически (не обязательно с той же производительностью) на любой платформе ruby.

Он также предлагает Futures, абстракцию более высокого уровня, которая может быть более удобной в использовании, чем пулы потоков.

...