Está en la página 1de 22

Threads

Ing. Andrea Quan

Threads
Un thread es un hilo de ejecucin. No puede correr por si solo, sino que corre dentro de un programa, paralelo a este.

THREAD

PROGRAMA

Threads
Varios threads pueden estar ejecutandose al mismo tiempo, haciendo diferentes tareas cada uno.
THREAD A THREAD B

PROGRAMA

Threads en Java
En Java, los threads se pueden implementar de dos formas diferentes: (1) Implementando la interfaz Runnable (2) Extendendiendo la clase Thread

Interfaz Runnable
- Las clases que implementan esta interfaz quieren funcionar como un thread, es decir, quieren mantener una ejecucin secuencial propia - Solo requiere la implementacin de un mtodo: run(), en el cual se escriben las instrucciones que se quieran ejecutar mientras el thread este activo.

Interfaz Runnable
Ejemplo:

Interfaz Runnable
Ejemplo:

Cdigo que se ejecutara al momento de que se mande a ejecutar el thread.

Interfaz Runnable
Ejemplo: Como se utiliza EjemploThread:

Se crea una instancia de la clase EjemploThread y despus se le aplica el mtodo run(). Esto hace que el Thread se ejecute.

Clase Thread
La clase Thread implementa la interfaz Runnable. A parte del mtodo run(), la clase Thread provee una serie de mtodos que nos pueden servir a la hora de manejar threads. (ver el API) Para crear un tipo de thread nuevo, hay que heredar de la clase Thread:

Clase Thread
Ejemplo:

Clase Thread
Ejemplo:
La clase debe heredar de la clase Thread

Clase Thread
Ejemplo:
Se pueden definir campos nuevos si el tipo de thread lo requiere, en este caso, MyThread guarda un entero.

Clase Thread
Ejemplo:
Si se agregaron campos, y se requieren verificaciones, es importante sobreescribir un constructor

Clase Thread
Ejemplo:
run() sigue siendo el mtodo mas importante, en donde se tiene que escribir que ejecutara el thread cuando este activo.

Que hace este thread?

Clase Thread
Ejemplo:

Que hace esta instruccin?

Clase Thread
(parntesis Thread.sleep : Interrumpe el flujo de ejecucin por el numero de milisegundos que reciba de parmetro.

Thread.sleep(1500);

cierre parntesis)

Clase Thread
Ejemplo: Como se ejecuta el Thread:

Se crea una instancia de la clase que definimos

Clase Thread
Ejemplo: Como se ejecuta el Thread:

Se manda a ejecutar utilizando el mtodo start ()

Clase Thread
Ejemplo: Como se ejecuta el Thread:

En este ejemplo, main ejecuta un ciclo paralelamente al thread.

Clase Thread
Ejemplo: Resultado

Clase Thread
Ejemplo 2:

Tambin se puede sobreescribir el mtodo start(), lo importante es siempre mandar a ejecutar super.start() antes de cualquier cosa. En start() se puede poner cualquier instruccin que se necesite ejecutar al momento en que el Thread se activa.

Clase Thread
Ejemplo 2:

Si se tienen diferentes tipos de Thread, deben crearse instancias para cada uno, y mandar a ejecutar el metodo start() en cada una de ellas.

También podría gustarte