0% encontró este documento útil (0 votos)
135 vistas8 páginas

Hilos en JAVA

Un hilo es un proceso liviano que se ejecuta en el sistema operativo. En Java, el proceso principal es el método main. Para crear hilos, se puede extender la clase Thread o implementar la interfaz Runnable. El ciclo de vida de un hilo incluye estados como nuevo, ejecutable, bloqueado y muerto.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
135 vistas8 páginas

Hilos en JAVA

Un hilo es un proceso liviano que se ejecuta en el sistema operativo. En Java, el proceso principal es el método main. Para crear hilos, se puede extender la clase Thread o implementar la interfaz Runnable. El ciclo de vida de un hilo incluye estados como nuevo, ejecutable, bloqueado y muerto.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Hilos en JAVA

MARTINEZ RODRIGUEZ JOSE BARUC


Concepto
Un hilo es un proceso liviano que está
ejecutando en un momento
determinado en el sistema operativo

En java el proceso que siempre se


ejecuta es llamado main a partir del
cual se inicia todo el
comportamiento de la aplicación
Estado de un
Nuevo (new):  estado en que un hilo se
encuentra después de que un objeto de la
clase Thread ha sido instanciado pero
antes de que el método start() sea

Hilo
llamado.

En ejecución (runnable):  Este es el estado


en que un hilo puede ser elegido para ser
ejecutado por el programador de hilos pero
aún no está corriendo en el procesador.

Esperando/bloqueado/dormido
(waiting/blocked/sleeping):  estado en el
En ejecución (running):  Este es el estado en cual el hilo está vivo aún pero no es elegible
el que el hilo está ejecutándose ocupando para ser ejecutado.
tiempo de CPU.

Muerto (dead):  cuando se han completado


todos los procesos y operaciones contenidos
en el método run().
En ocasiones necesitaremos que dos hilos
ejecuten el mismo método o accedan al

Sincronización mismo dato, que pasaría si un hilo está


trabajando con un dato y llega otro y se lo
cambia.

Existen dos tipos de mecanismos de


sincronización

1.- Bloqueo de Objeto: synchronized.

2.- Uso de señales: wait y notify.

Para poder bloquear un objeto e impedir que otro hilo lo utilice, se utiliza la
palabra synchronized, cuando un hilo está ejecutando, un método
sychronized en un objeto se bloquea el acceso a dicho objeto, cualquier
otro hilo que quiera ejecutar el método bloqueado, tendrá que esperar a
que se desbloque, el objeto se desbloqueara cuando el hilo actual termine
la ejecución del método synchronized, se ira creando una lista de espera y
se irán ejecutando en orden de llegada.
Librerías clases
La acción sucede dentro del método run(), el código que se encuentra dentro de este método, si queremos hacer
varias acciones de manera independiente pero todas a la vez, tendremos varias clases cada una con su método
run() pero la pila de procesos siempre comienza a partir del método run()

Java.lang.Tread: Java.lang.Runnable:
es la clase principal nos ofrece el API se trata de una interfaz, que fuerza la
genérico de los hilos así como la implementación del método “public void
implementación de su comportamiento run()” existe por falta de herencia
múltiple en java

1.- Para crear un hilo heredamos de la 2.-Para crear un hilo implementamos


clase  Java.lang.Tread  y sobrescribimos Java.lang.runneable implementamos el
el método run() método RUN() y creando una instancia de
la clase java.lang.Tread pasándole el
objeto.
Definición.

Una thread es un único flujo de


control dentro de un programa.
Algunas veces es llamado
(Threads) en Java
contexto de ejecución porque
cada thread debe tener sus
Creación y ejecución de
propios recursos,
Hay dos formas de hacer  una tareaThreads
correr
concurrentemente con otra: crear una nueva
clase como subclase de la clase Thread o
declarar una clase e implementar la interfaz
Runnable.

Ejecución del método run()


Una instancia de la subclase es creada con new, luego llamamos al método start() de la
Uso de Subclase thread para hacer que la máquina virtual Java ejecute el método run(). Ojo para iniciar
Cuando se crea una subclase de la concurrencia invocamos a start(), así invocamos a run() en forma indirecta. Si
invocamos a run() directamente, se comportará como el llamado a cualquier método
Thread, la subclase debería definir su llamado dentro de un mismo hilo (sin crear uno independiente).
propio método run() para sobre montar Implementación de la Interfaz Runnable

el método run() de la   clase Thread. La interfaz Runnable requiere que sólo un método sea implementado, el método run().
La  tarea concurrente es desarrollada en Primero creamos una instancia de esta clase con new, luego creamos una instancia de
Thread con otra sentencia new y usamos el objeto recién creado en el constructor.
este método run(). Finalmente, llamamos el método start() de la instancia de Thread para iniciar la tarea
definida en el método run().
Ciclo de Vida de una Thread

(Threads) en Java
Recién creada (New thread): entra aquí
inmediatamente después de su creación.
Es decir luego del llamado a new. En este
estado los datos locales son ubicados e
iniciados. Métodos de uso común:
Corrible (Runnable):  Aquí el contexto de void start(): usado para iniciar el cuerpo de la thread
ejecución existe y el hilo puede ocupar la definido por el método run().
CPU en cualquier momento. Este estado void sleep(): pone a dormir una thread por un   tiempo
puede subdividirse en dos: Corriendo y mínimo especifivoid join(): usado para esperar por el
encolado. término de la thread sobre la cual el método es invocado,
Bloqueada (not Runnable): Se ingresa por ejemplo por término de método run().
cuando: se invoca suspend(), el hilo void yield(): Mueve a la thread desde el estado de
invoca el método wait() de algún objeto, corriendo al final de la cola de procesos en espera por la
el hilo invoca sleep(), el hilo espera por CPU.
alguna operación de I/O, o el hilo invoca
join() de otro hilo para espera por su
término.
Muerta (Dead):  Se llega a este estado
cuando el hilo termina su ejecución
(concluye el método run) o es detenida
por otro hilo llamando al su método
stop(). Esta última acción no es
recomendada.
Ejemplo de hilos

También podría gustarte