Exposicion Hilos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

Hilos en lenguaje de java

thread en java

La implementación de hilos se puede hacer de dos


formas, usando la clase Threads o usando la interfaz
Runnable e implementando el método run() que
casualmente, así se lo llamamos en el caso sin hilos :P),
luego para invocar cada hilo usamos el método start() y
es básicamente lo que cumple.
El código anterior extiende de Thread,
implementa el método run() y dentro del
ciclo for del main va creando los objetos y
ejecutando su correspondiente hilos
llamando a start(). En este caso dado que la
ejecución no este en tiempo real, ya no
esperará a que cada ciclo termine sino que
irá atendiendo de una cada vez que sea
posible
la sincronización en
java.
la sincronización nace de la necesidad de evitar que dos o
más Threads traten de acceder a los mismos recursos al
mismo tiempo.

Para sincronizar un bloque de código, se debe especificar un


argumento que es el objeto que se utilizara como cerradura
para la sincronización.
métodos de clase
Threads en java
Una es implementando la interface Runnable, la
otra es extender la clase Threads. La
implementación de la interface Runnable es la
forma habitual de crear threads.

Las interfaces proporcionan al programador una


forma de agrupar el trabajo de infraestructura de
una clase
El primer método de crear un thread es simplemente
extender la clase Thread:

1.class MiThread extends Thread {


public void run() {
...
}
solamente se puede extender o derivar una vez
de la clase padre.

2. public class MiThread implements Runnable {


Thread t;
public void run() {
// Ejecución del thread una vez creado
}
}
Arranque de un Thread

Las aplicaciones ejecutan main() tras arrancar. Esta es la razón de que main() sea
el lugar natural para crear y arrancar otros Threads. La línea de código:

t1 = new TestTh( "Thread 1",(int)(Math.random()*2000) );

Al tener control directo sobre los Threads, tenemos que arrancarlos

t1.start();
El thread entra en estado "Parado" cuando alguien llama al
método suspend (), cuando se llama al método sleep(),
cuando el thread está bloqueado en un proceso de
entrada/salida o cuando el thread utiliza su método wait()
para esperar a que se cumpla una determinada condición.
Cuando ocurra cualquiera de las cuatro cosas anteriores, el
thread estará estático.
Los métodos de
recuperación del estado
Si un thread está dormido,
Ejecutable, en función de la pasado el lapso de tiempo.
forma de llegar al estado
Si un thread está suspendido,
Parado del thread,
luego de una llamada al método
resume().
Si un thread está bloqueado en
una entrada/salida, una vez que
el comando E/S concluya su
ejecución
Un thread se puede morir de dos formas: por causas
naturales o porque lo maten (con stop()). Un thread
muere normalmente cuando concluye de forma
habitual su método run(). Por ejemplo, en el
siguiente trozo de código, el bucle while es un bucle
finito
Un thread que contenga a este
método run(), morirá
naturalmente después de que se
complete el bucle y run()
concluya.
También se puede matar en
cualquier momento un thread,
invocando a su método stop().

También podría gustarte