[Python-es] Threads con operaciones I/O en Python
Antonio Beamud Montero
antonio.beamud en gmail.com
Mar Jun 8 17:14:12 CEST 2010
lasizoillo escribió:
> El día 8 de junio de 2010 16:11, Antonio Beamud Montero
> <antonio.beamud en gmail.com> escribió:
>
>> Fél
>> Si los hilos son de proceso están muy ligados a E/S te recomiendo gevent
>> (http://www.gevent.org/). El api es muy similar a trabajar con hilos, pero
>> por debajo usa libevent, para trabajar de forma asincrona.
>>
>>
>
> No entiendo las ventajas de usar gevent para este caso concreto.
> Entendería usarla si se dieran las siguientes condiciones:
> * No va a tener problemas con librerias que no cooperan
> * Va a necesitar de hilos a cascoporro y quiere minimizar el overhead
> * Va a sacar partido de usar los pollers (kevent, epoll, ...) que
> proporciona libevent.
> * Evitar cambios de contexto en los hilos le va a suponer una ventaja
>
> El primer punto lo veo conflictivo en su caso. Porque va a usar
> librerias que no van a cooperar con los greenlets. Así que usar gevent
> le puede dar más problemas que ventajas.
>
>
Cierto, he leido su mensaje un poco por encima y no me he fijado
demasiado, me he guiado más por el asunto del mensaje.
> No creo que vaya a necesitar de muchos hilos. Así que el número de
> hilos python a usar no debería suponer mucho overhead. Tampoco creo
> que vaya a notar mucha diferencia entre un poller como select o uno
> como epoll si el numero de eventos registrados es mínimo.
>
>
Bueno, aqui depende de como lo programes, puedes lanzar un Greenlet por
acción, evento, lo que sea, son muy ligeros.
> ¿Me estoy perdiendo algo del maravilloso framework gevent? ¿De qué
> forma ventajosa se podría utilizar en este caso concreto? También es
> verdad que si usa gevent mediante monkey-patching la prueba es gratis
> ;-)
>
>
No he he seguido todo el hilo, como te comentaba. Puede que si mira
gevent, a lo mejor diseña de otra forma su aplicación o le da alguna
idea de como resolver algún problema que se pueda presentar, bien ahora,
bien en el futuro.
Saludos.
Más información sobre la lista de distribución Python-es