2011-08-31 10 views
7

Per ottenere concurrency reale in Ruby o Python, ho bisogno di creare nuovi processi. Python rende questo abbastanza semplice usando il modulo multiprocessing, che astrae tutta la forchetta/aspetta la bontà e mi permette di concentrarmi sul mio codice. Ruby ha qualcosa di simile? In questo momento sto chiamando Process.fork e Process.wait per ottenere la mia concorrenza, e voglio una soluzione più pulita.Qual è l'equivalente di Ruby al modulo di multiprocessing di Python?

+0

Non proprio una risposta alla domanda, ma: Rubino utilizza i thread nativi per un po 'di tempo, quindi le discussioni sono in realtà un ottimo modo per ottenere " vera "concorrenza". Inoltre, non è necessario preoccuparsi delle strutture di dati condivise ecc. (A parte l'ovvia sicurezza del thread) –

+0

Hai già passato questo [uno] [1]? [1]: http://stackoverflow.com/questions/855805/please-introduce-a-multi-processing-library-in-perl-or-ruby – Bourne

+0

@Niklas: mi sono bloccato con Ruby 1.8 al lavoro :( –

risposta

4

Ho usato https://github.com/grosser/parallel e mi piace molto. Di default #map o #each su tutti i core del tuo sistema. Sotto il cofano è un involucro intorno a Process.fork, che suona come quello che stai chiedendo.

+0

L'unico problema con Parallel è che non mi permette di fare nulla dopo la foratura. Attende sempre il completamento delle attività. – dknight

Problemi correlati