Tema07-Hilos
-
Upload
edwin-rodriguez-rojas -
Category
Documents
-
view
218 -
download
0
description
Transcript of Tema07-Hilos
Programación Visual II
Lic. Luis Ernesto Díaz Beteta
Tema 07 – Hilos en Java
Introducción
Un Hilo es un trozo de código de nuestro programa que puede ser ejecutado al mismo tiempo que otro
Desde el punto de vista del usuario existen dos áreas bien diferenciadas, que el desarrollador ha de tener en cuenta: primer plano y segundo plano
Primer plano aquí se ejecuta únicamente un hilo llamado “hilo principal”, es el hilo que trabaja con la vista o interfaz gráfica. También, puede ser usado para hacer cálculos u otros procesamientos complejos, aunque estos deberían de evitarse hacerse en este hilo a toda costa.
Segundo plano se ejecuta todo el resto de hilos. El segundo plano tiene la característica de darse en el mismo momento que el primer plano, debería de llevar las ejecuciones pesadas de la aplicación.
La multitarea nos permite ejecutar varios procesos a la vez, es decir, de forma concurrente.Por tanto eso nos permite hacer programas que se ejecuten en menor tiempo y sean más eficientes.
Multitarea
VS
Clase Thread
En Java para utilizar la multitarea debemos de usar la clase Thread, es decir, se debe heredar de la clase Thread y la clase Thread implementa la interface Runnable.
En el diagrama de clase muestra la Interface Runnable y la clase Thread con sus principales métodos:.
Ejemplo clase Thread
Ejemplo interface Runnable
Arrancar y detener un hiloArranque de un thread
Detener un thread
hilo1.stop();
Suspender y reanudar un thread
Modificador synchronized
Funciones wait() y notify()
Cuando run() termina, el hilo termina
Arrancar y detener un hilo
Cuando run() termina, el hilo termina
Ciclo de vida de un hilo
Cuando se crea un nuevo Thread, está en su estado inicial 'Nuevo Thread'. En este estado es simplemente un objeto más.No existe todavía el thread en ejecución. El único método que puede invocarse sobre él es el método start().Cuando se invoca a start() sobre el hilo. El sistema crea los recursos necesarios, loplanifica (le asigna prioridad) y llama al método run(). En este momento el hilo está en ejecución.Si el método run() invoca internamente el método sleep() o wait() o el hilo tiene queesperar por una operación de E/S, entonces el hilo pasa al estado 'Parado' hasta que la condición de espera finalice.Por último cuando el método run finaliza el hilo termina y pasa a la situación 'Muerto'.
Demonios
Demonio: es un tipo especial de hilo que no forma parte del programa, sino de la máquina virtual de Java● Se usan para prestar servicios en segundo plano● Ejemplo: el recolector de basura
Creación de un demonio:hilo.setDaemon(true);
Verificar si un hilo es un demonio:boolean b = hilo.isDaemon();
MUCHAS GRACIAS