Envío de mensajes a múltiples destinos

Jesus Cea jcea en argo.es
Jue Ene 31 20:56:13 CET 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Antonio Beamud Montero wrote:
|> De hecho los threads serían muy eficientes, porque solo están
|> interesados en un socket cada uno y no usan select.
|
| Crear y destruir hilos por conexión es muy pesado.. para pequeños
| sistemas va bien, pero si crecen los requisitos, escala mal..

En Solaris crear un hilo es muy ligero. Por otro lado, no he dicho que
se creen cuando llegan conexiones. Puedes usar un "pool".

Mira Apache 2.2, por ejemplo.

| ¿Te refieres a que es trivial programar con hilos vs programar un
| sistema asíncrono (twisted)?
|
| Todo depende, yo la mejor combinación la obtuve con twsited (epoll) +
| hilos (para las tareas que requerian más procedimiento). Con el tiempo,
| veo más trivial programar asincronamente que con hilos.

Te pongo un ejemplo: si una peticion requiere que vayas a una base de
datos, con hilos puedes permitir bloquear ese hilo mientras esperas que
la base de datos responda. Con Twisted tienes que integrar la
comunicacion con la base de datos en el framework, so pena de que se te
bloquee todo mientras "alguien" está esperando por la base de datos.

Además, puedes usar todos los módulos. Por ejemplo, puedo mandar un
email con "smtplib" como siempre, sin temer que el rendimiento caiga
para el resto.

O, sencillamente, puedo realizar un cálculo matemático muy largo y
complejo o generar un gráfico que me lleva varios segundos, sin
penalizar al resto de hilos. Esto no lo puedes hacer en twisted sin que
tu código ceda el control al framework *explícitamente* cada poco tiempo.

Lo lamento, pero Twisted no me gusta nada :). Y sí, sé bien que los
threads no son la panacea. Algún día pondré mis ideas por escrito... :-)

- --
Jesus Cea Avion                         _/_/      _/_/_/        _/_/_/
jcea en argo.es http://www.argo.es/~jcea/ _/_/    _/_/  _/_/    _/_/  _/_/
jabber / xmpp:jcea en jabber.org         _/_/    _/_/          _/_/_/_/_/
~                               _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iQCVAwUBR6In3Zlgi5GaxT1NAQLM3QQAlZ8SwrVTb4jkNdYg0GlH33TCacdJbKaS
j2xAmv/spPeySlth5eIPW8KdZpMjUDumYNTdtWyrLHjBzpFfl7xP8RGAJKjfU2qE
3DeXbwxY8Mot2VkY3sClN+gxZBWbOoNf8XEtPha0vWrLQ4ba1a01675EMsMZ0eHo
XMK9PB5x6Mw=
=zFSn
-----END PGP SIGNATURE-----
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


Más información sobre la lista de distribución Python-es