[pyar] Pub Sub & Thread

Pablo M. Mana pablo.m.mana en gmail.com
Dom Abr 15 22:34:55 ART 2012


Hola Gente:
Si alguien quiere que valla derecho al grano lea a partir de ***.

De a poco sigo dándole forma mi IM. Tenia que aprender un montón de
cosas para llegar a buen puerto, mas de las que me hubiera imaginado y
la verdad es que no todos los días me pongo hacer algo.  Una de las
cosas que mas me intrigaba es como comunicar dos librerías dirigidas
por eventos. Una  en el thread principal y las otra en un thread
auxiliar  Vi alguna cosas pero mucho no me convencían, hay muchísimo
escrito sobre el tema pero en general se orienta a casos en los que el
thread auxiliar desarrolla una tarea pesada, quizás tarde un rato en
hacerse en algún momento termina. En todo el tiempo el tiempo que dura
la ejecución ese thread auxiliar en general recibe un mensaje inicial
del principal que le dice que hacer ,  luego el auxiliar quizás manda
alguna actualización diciendo como va y un mensaje al final. Muy poca
interacción para lo que nesecito. Buscando otra cosa me tope con
Pypubsub, me encanto.

****

Tengo un Thread auxiliar  que ejecuta una librería dirigida eventos y
en el thread principal en el que esta wxpython
Es fácil comunicar algo desde el thread auxiliar mediante un
wx.callafter que invoca un pubsub.sendmensagge  al thread principal
Dentro  del  thread principal para pasar mensajes también hago lo mismo
Desde el thread principal al  auxiliar no puedo aplicar esa receta, al
menos con pypubsub [0] y es una lastima por que es re comodo.
Buscando un poco veo que hay otras librerías similares algunas
extraidas de Django [1] [2] y otras desarrolladas desde 0 [3]
[4] [5].  Pero en ninguna veo que pueda saltear mensajes de thread en
thread (aclaro que mire la documentación poniendo thread en el
buscador de firefox ). Asi que la pregunta es esta ¿hay forma tener lo
que pypubsub llama mensaje pero con el alcance de un queue (thread
safe en lo posible) ?.

[0] http://pubsub.sourceforge.net/
[1] https://github.com/olivierverdier/dispatch
[2] https://github.com/theojulienne/PySignals
[3] http://pydispatcher.sourceforge.net/
[4] https://github.com/11craft/louie
[5] http://home.gna.org/py-notify/

Saludos.
Pablo M. Mana



More information about the pyar mailing list