2010-04-12 4 views

ответ

4

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

2

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

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

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