[pyar] Threads o Multiprocessing?

Martin Cerdeira martincerdeira en gmail.com
Sab Oct 22 10:05:58 ART 2011


2011/10/21 Gabriel <gepatino en gmail.com>

> El 21 de octubre de 2011 12:59, Martin Cerdeira <martincerdeira en gmail.com>escribió:
>
>> 2011/10/21 Claudio Freire <klaussfreire en gmail.com>
>>
>>> 2011/10/20 Martin Cerdeira <martincerdeira en gmail.com>:
>>> > Se que es una pregunta tipica y, vi que en internet la han hecho, pero
>>> > quisiera la opinión de uds. Supongamos que tengo una aplicación que
>>> tiene
>>> > que ejecutar n procesos. Pero, no los quiero ejecutar linealmente, sino
>>> que
>>> > quiero poder tener un hilo de ejecución por cada uno, o sea, n hilos.
>>> > Qué usarían? Threading? Multiprocessing? Otro?
>>>
>>> Con la información que diste, no se puede decir nada.
>>> Multiprocessing y multithreading cada uno tiene sus pros y contras, es
>>> imposible decir qué te vendrá mejor pues no dijiste nada de lo que
>>> pensás hacer.
>>>
>>> Tu pregunta suena como: ¿Que me conviene? ¿Una computadora o un celular?
>>>
>>>
>> No quería aburrir con detalle, pero, se ve que por acortar me quedé
>> demasiado corto con la data.
>> El programa lo que hace es (va a hacer, porque no lo empecé a
>> programar[0]) lee una tabla de SQL y, por cada registro realiza una
>> operación que, está definida por el usuario, puede ser llamar un script,
>> llamar a un webservice, etc. Es como si fuera un DTS, donde, tenés una
>> conexion de origen, una de destino y, en el medio podés hacer
>> transformaciones de datos, llamar a scripts que hagan "cosas" con esos datos
>> como llamar a un webservice, grabar un archivo, no se, lo que se te ocurra.
>>
>> La idea es, si hago esto "lineal", va a ser más lento que si uso algún
>> tipo de hilo. Lo que no me queda muy claro es, según mi caso, cuál me
>> termina por convenir.
>>
>> Espero haber sido claro, sino, avisennnn =)
>>
>>
>
> En este momento estoy haciendo un proyecto bastante similar, y lo hicimos
> con threads. El unico inconveniente es que algunas librerias no son
> threadsafe entonces no podes compartir conexiones. Nos pasa principalmente
> con stomp (active mq) y creo que con mysql tambien (ahora no recuerdo).
>
> En cuanto a la respuesta de DF, sobre la recomendacion de usar un proceso
> por cpu, es algo que habia leido en mas de un thread/tutorial/loquesea, pero
> supongo que aplica para aplicaciones con uso intensivo de CPU. Si la
> aplicacion es IO bound, supongo que debe ser casi lo mismo que threads y la
> principal diferencia es que no tenes problemas de thread safe, pero debería
> utilizar mas recursos.
>
> Conta que elegiste y como te funciono en cada caso. Yo tengo pendiente
> probar este sistema con procesos, pero no creo que pueda hacerlo a corto
> plazo.
>
> --
> Gabriel E. Patiño
>
> _______________________________________________
> 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
>

Muchas gracias a todos por sus respuestas! Me parece que voy a ir por
multiprocessing. Después les cuento como me fue, graciassss

-------------------------------------
Martín Cerdeira - Software Developer
[web] http://www.codmacs.blogspot.com/
()  ascii ribbon campaign
/\  www.asciiribbon.org
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20111022/5b37239a/attachment.html>


More information about the pyar mailing list