Uso de "Threads" con Clase java.lang.Thread.

Código Fuente Camino.java

 
public class Camino extends Thread {
    public Camino(String str) {
        super(str);
    }
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println("Km " + i + " : " + getName());
            try {
                sleep((long)(Math.random() * 2500));
            } catch (InterruptedException e) {}
        }
        System.out.println("Llego a la meta! " + getName());
    }
}

A continuación se describe otra Clase que ejecuta la lógica de esta Clase diseñada con "Threads".

Código Fuente Competidores.java

 
public class Competidores {
    public static void main (String[] args) {
        new Camino("Conejo").start();
        new Camino("Tortuga").start();
        new Camino("Zorro").start();
    }
}

Resultados

Al ejecutar la Clase anterior (Competidores) se estarían ejecutando tres "Threads" simultáneamente, inclusive por los resultados de ejecución podrá notar que el acceso se lleva acabo de esta manera.

Otro detalle interesante al ejecutar esta Clase es que los resultados siempre son distintos, esto se debe a que los "Threads" se ejecutan conforme existen recursos del Sistema disponibles, sin embargo, vale mencionar que existen mecanismos más avanzados para manejo de "Threads" que permiten asignar prioridades o interrumpir "Threads" en determinado momento.

Menú Curso

Objetos, Java y JDK

Composición, Clases y Librerías("Packages").

Variables, Constructores, Métodos y Comentarios.

Herencias ("Inheritance"), Condicionales y Ciclos

Operadores, Errores y Datos de Entrada/"Streams".

Interfases, Arreglos y Polimorfismo.

Collections Framework, "Threads", Garbage Collection y "Assertions".

Java 5 / JDK 5 .

Instalación Software.

Codigo.