sábado, abril 15, 2006
Esos hilos del demonio
«Si te sabes reír de tus propias miserias, siempre hallarás motivos para ser feliz.»
Yo mismo
Esta soberana tontería se me ocurrió al encontrarme, en medio de mi miseria, soltando una carcajada. Resulta que estoy teniendo un problema de programación: me pongo a hacer una tarea costosa computacionalmente y se bloquea el interfaz de la aplicación. ¿A quién no le ha pasado alguna vez? Conozco dos posibles soluciones:
1) Crear un hilo para la tarea costosa y liberar al hilo de interfaz de usuario (precisamente la solución de la que hablé para hacer que las aplicaciones Swing respondan más rápido).
2) Dejar tiempo de vez en cuando al hilo de interfaz de usuario llamando a una función tipo repaint o DispatchMessage.
La primera solución es probablemente la mejor... pero introduce hilos y los hilos producen más problemas que un yonki con una navaja y con síndrome de abstinencia. Así que estaba investigando la segunda, cuando me encontré con una entrada de un desarrollador de Mozilla en la que discutía los problemas de los hilos. Lo que me hizo gracia fue que en los comentarios alguien dijo:
This problem has been addressed by programmers of real-time and reliable systems for more than 20 years. Take a look at the ideas behind occam2 and the transputer which date back to the early 80's, wikipedia will tell you all about it. [...]
Lets hope that these ideas and methods will finally make their way into the desktop to produce more reliable and faster software.
La mención de los Transputers me hizo soltar la carcajada. No necesito que la Wikipedia me cuente nada para saber que así no se va a solucionar el problema: yo estuve allí. O como dicen los angloparlantes: «Been there, done that». Y allí pasé alguno de mis peores momentos luchando contra programas imposibles de depurar. Así que, aunque también me han proporcionado historias para reírme durante media vida, casi prefiero los hilos...
Comentarios:
Yo uso hilos. Si lo que quieres hacer es algo sencillo van bien. Si luego los quieres sincronizar ya es una pesadilla...
Claro que también depende del lenguaje. Recuerdo que hacer hilos en C era una pesadilla, mucho más cómodo en Java o en .NET, donde va a parar!!
Saludos.
Claro que también depende del lenguaje. Recuerdo que hacer hilos en C era una pesadilla, mucho más cómodo en Java o en .NET, donde va a parar!!
Saludos.
Muchas gracias, Albin. Yo he usado hilos muchas veces y sé más o menos hacerlo, por eso prefería no tener que meterme con ellos :-)
A lo mejor es que los he utilizado sobre todo en C (o en C++, que son todavía más pesadilla porque ni POSIX ni Windows esperan funciones de clases para hilos)...
En cualquier caso, al final hice lo que quería.
Publicar un comentario
A lo mejor es que los he utilizado sobre todo en C (o en C++, que son todavía más pesadilla porque ni POSIX ni Windows esperan funciones de clases para hilos)...
En cualquier caso, al final hice lo que quería.