2011-08-31 14 views
7

Para obtener una concurrencia real en Ruby o Python, necesito crear nuevos procesos. Python lo hace bastante sencillo utilizando el módulo multiprocessing, que abstrae toda la bondad fork/wait y me permite concentrarme en mi código. Ruby tiene algo similar? En este momento estoy llamando al Process.fork y al Process.wait para obtener mi simultaneidad, y quiero una solución más limpia.¿Cuál es el equivalente de Ruby al módulo de multiprocesamiento de Python?

+0

No es realmente una respuesta a la pregunta, pero: Rubí utiliza hilos nativos desde hace un tiempo, por lo que las discusiones son en realidad una muy buena manera de conseguir " "concurrencia" real Además, no necesita preocuparse por estructuras de datos compartidas, etc. (aparte de la seguridad de hilos obvia) –

+0

¿Ya ha pasado por este [uno] [1]? [1]: http://stackoverflow.com/questions/855805/please-introduce-a-multi-processing-library-in-perl-or-ruby – Bourne

+0

@Niklas: estoy atascado con Ruby 1.8 en el trabajo :( –

Respuesta

4

He usado https://github.com/grosser/parallel, y me gusta mucho. De manera predeterminada, #map o #each en todos los núcleos de su sistema. Debajo del capó hay una envoltura alrededor de Process.fork, que suena como lo que estás pidiendo.

+0

El único problema con Parallel es que no me permite hacer nada después de bifurcar. Siempre espera a que se completen las tareas. – dknight

Cuestiones relacionadas