La primera forma que veremos para crear clases concurrentes es extendiendo Thread
Deberemos sobrecargar el método run() en donde indicaremos lo que queremos hacer.
Vamos a escribir una clase que escriba 100 veces un mensaje, y cómo queremos que corra como un hilo, daremos las órdenes en el método run()
Notas:
Línea 3 – Debemos heredar de la clase Thread
Líneas 5 a 9 – Definimos una variable privada en donde podremos dejar un mensaje, y proporcionamos un método setter para cargarla
Líneas 12 a 21 – Establecen todo el flujo del programa; equivalen al método main que estábamos utilizando hasta ahora, y que era el que realizaba las funcionalidades del programa.
- Se trata de un bucle para que escriba 100 veces un mensaje (línea 14), pero después de cada impresión, provocamos una parada de 1 segundo
A continuación escribimos una clase sencilla que instancie esta clase un par de veces, le cargue mensajes distintos y llame al método run()
Notas:
Líneas 6 y 7 – Creamos dos instancias de la clase Mensaje
Líneas 9 y 10-Cargamos cada instancia con un mensaje distinto
Líneas 12 y 13- Damos orden de inicio de ejecución. Internamente, se llamara al método run()
A partir de ese momento, las dos instancias se ejecutaran a la vez, imprimiendo y esperando un segundo. Como la consola es un recurso único, las clases se alternaran a escribir en la misma. La alternancia no tiene que ser perfecta, porque quien va dando tiempo a cada hilo es el S.O., pero la salida será algo como esto: