[pyar] multiprocessing ejecuta secuencialmente los procesos

Andres Riancho andres.riancho en gmail.com
Vie Ago 19 15:17:15 ART 2016


Works on my machine.

$ cat pyar.py

import time
from multiprocessing import Pool


def check_machines():
    maqs = [1, 2, 3, 4, 5]
    pool = Pool(processes=5) # process per core
    pool.map(do_check, maqs)

def do_check(maquina):
    print "procesando %s" % maquina
    time.sleep(2)
    print "-> %s" % maquina

check_machines()


$ time python pyar.py
procesando 1
procesando 2
procesando 3
procesando 5
procesando 4
-> 2
-> 5
-> 1
-> 4
-> 3

real 0m2.056s
user 0m0.024s
sys 0m0.043s
$

On Fri, Aug 19, 2016 at 3:03 PM, Javier Marcon <javiermarcon en gmail.com> wrote:
> Hola tengo un código que quiero correr con multiprocessing para que me
> corra varios procesos al mismo tiempo, pero al correrlo noto que todos
> los procesos corren en forma secuencial y no en paralelo. el código es:
>
> from multiprocessing import Pool
> from .models import Maquina
>
> def check_machines():
>     maqs = []
>     maquinas = Maquina.objects.order_by('-empresa') #all()
> #select_related('Empresa')
>     #print type(maquinas)
>     for maquina in maquinas:
>         maqs.append(maquina)
>     pool = Pool(processes=5) # process per core
>     pool.map(do_check, maqs)
>
> def do_check(maquina):
>     print "procesando %s" % maquina.host
>     time.sleep(10)
>     print "-> %s" % maquina.host
>
> Como deberia ponerlo para que corra todos los do_check simultaneamente?
>
> Gracias,
>
> Javier.
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar



-- 
Andrés Riancho
Project Leader at w3af - http://w3af.org/
Web Application Attack and Audit Framework
Twitter: @w3af
GPG: 0x93C344F3


Más información sobre la lista de distribución pyar