JAVA DESDE CERO

Page 70

http://www.librosgratis.org

Java en hebras La clase anterior usamos, en el último ejemplo, un concepto al que vamos a dedicar ahora nuestra atención: los threads. La traducción literal de thread es hilo o hebra, y se utiliza también para referirse al hilo de un discurso. El concepto de threads en los ambientes y sistemas operativos es un poco complejo de explicar pero sencillo de entender: independientemente del sistema elegido, puede pensarse que un thread es algo así como el lugar de ejecución de un programa. En la mayoría de los programas que hemos visto, hemos usado un solo thread; es decir que un programa comienza y su ejecución sigue un camino único: como un monólogo. Java es multithreading. Esto significa algo así como que tiene capacidad de diálogo, y más aún: puede ejecutar muchos threads en paralelo, como si tratáramos de una conversación múltiple y simultánea. No confundir aquí multithreading con la capacidad de ejecutar varios programas a la vez. Esta es una posibilidad, pero también un mismo programa puede utilizar varios threads ("caminos de ejecución"?) simultáneamente. Esto, por supuesto, depende fundamentalmente de la capacidad del sistema operativo para soportar multithreading, y por esto Java no puede ejecutarse (al menos en forma completa) en sistemas que no lo soporten. El uso de threads nos permite, por ejemplo, ejecutar simultáneamente varios programas que interactúen entre ellos; o, también, que un programa, mientras por ejemplo actualiza la pantalla, simultáneamente realice una serie de cálculos sin tener que hacer esperar el usuario. Una forma sencilla de verlo es imaginar que tenemos un grupo de microprocesadores que pueden ejecutar, cada uno, un solo thread; y nosotros asignamos programas (o partes de programas) a cada uno de ellos. Además, podemos imaginar que esos microprocesadores comparten una memoria común y recursos comunes, de lo que surgirá una serie de problemas importantes a tener en cuenta cuando se usan threads.

Los pasos básicos Hay tres cosas a tener en cuenta para usar threads en un programa: • La clase que queremos asignar a un thread debe implementar la interface Runnable. • Debemos crear una variable (instancia) del tipo Thread, que nos permitirán acceder y manejar el thread. En los applets, en el método start() simplemente crearemos el thread (y, posiblemente, lo pondremos a ejecutar) • Y por último tenemos que crear un método run() que es el que ejecuta el código del programa propiamente dicho. La interface Runnable, simplemente definida como: public interface java.lang.Runnable { // Methods public abstract void run(); } le asegura al compilador que nuestra clase (la que utilizará el thread para ejecutarse) dispone de método run(). Vamos a ver un par de ejemplos, primero una aplicación standalone y luego un applet.

Reunión de amigos El siguiente ejemplo (Ejemplo19.java) usa threads para activar simultáneamente tres objetos de la misma clase, que comparten los recursos del procesador peleándose para escribir a la pantalla. class Ejemplo19 { public static void main(String argv[])

Página 69


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.