Categorías destacadas
programacion php    
Artículo
3
¡votar!

 Threads de Control


Un Sencillo Thread de Ejemplo

Este ejemplo define dos clases: SimpleThread y TwoThreadsTest. Empecemos nuestra exploración de la aplicación con la clase SimpleThread -- una subclase de la clase Thread, que es proporcionada por el paquete java.lang.

class SimpleThread extends Thread {
    public SimpleThread(String str) {
        super(str);
    }
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println(i + " " + getName());
            try {
                sleep((int)(Math.random() * 1000));
            } catch (InterruptedException e) {}
        }
        System.out.println("HECHO! " + getName());
    }
}

El primer método de esta clase es un constructor que toma una cadena como su único argumento. Este constructor está implementado mediante una llamada al consturctor de la superclase y es intresante para nosotros sólo porque selecciona el nombre del Thread, que se usará más adelante en el programa.

El siguiente método es el método run(). Este método es el corazón de cualquier Thread y donde tiene lugar la acción del Thread. El método run() de la clase SimpleThread contiene un bucle for que itera diez veces. En cada iteración el método muestra el número de iteración y el nombre del Thread, luego espera durante un intervalo aleatorio de hasta 1 segundo. Después de haber temrinado el bucle, el método run() imprime "HECHO!" con el nombre del Thread.

La clase TwoThreads proporciona un método main() que crea dos threads SimpleThread: uno llamado "Jamaica" y otro llamadao "Fiji". (Si no quieres decidir donde ir de vacaciones puedes utilizar este programa para ayudarte a elegir -- ve a la isla cuyo threads imprima "HECHO!" primero).

class TwoThreadsTest {
    public static void main (String[] args) {
        new SimpleThread("Jamaica").start();
        new SimpleThread("Fiji").start();
    }
}

El método main() también arranca cada uno de los threads inmediatamente después siguiendo su construcción con una llamada al método start(). El programa daría una salida parecida a esta.

0 Jamaica
0 Fiji
1 Fiji
1 Jamaica
2 Jamaica
2 Fiji
3 Fiji
3 Jamaica
4 Jamaica
4 Fiji
5 Jamaica
5 Fiji
6 Fiji
6 Jamaica
7 Jamaica
7 Fiji
8 Fiji
9 Fiji
8 Jamaica
HECHO! Fiji
9 Jamaica
HECHO! Jamaica

Observa cómo la salida de cada uno de los threads se mezcla con la salida del otro. Esto es porque los dos threads SimpleThread se están ejecutando de forma concurrente. Así, los dos métodos run() se stán ejecutando al mismo tiempo y cada thread está mostrándo su salida al mismo tiempo que el otro.

Prueba esto: Modifica el programa principal y crea un tercer Thread llamado "Bora Bora".

Compila el programa y ejecútalo de nuevo. ¿Ha cambiado la isla de destino de tus vacaciones?

Publicado por:
Ricard Lou Torrijos
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
patricia Jimenez dice:

Hola muy buena la explicaion sobre threads, pero tuvieras algun ejemplo pero aplicado a action sript 2 o php

18/06/2010, a las 04:39:53
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon