Hilos en java ok

Solo disponible en BuenasTareas
  • Páginas : 5 (1094 palabras )
  • Descarga(s) : 0
  • Publicado : 1 de septiembre de 2012
Leer documento completo
Vista previa del texto
Tipo de clase: Conferencia.
Título: Hilos.

Sumario:

1. Conceptos
2. Formas de crear threads de ejecución
3. Métodos de control de Thread
4. Sincronización


Objetivo:

• Caracterizar e implementar hilos en Java.

Introducción

Uno de los coinceptos más importantes de la programación es la multitarea. Actualmente la mayoría de los sistemas operativos como Linux y Windows en susúltimas versiones permiten ejecutar más de un proceso a la vez. Esto también se refleja en los lenguajes de programación, a través de la programación concurrente, como la posibilidad de realizar más de una tarea al mismo tiempo y en un mismo programa.

Hasta ahora todos los programas que hemos visto han tenido un solo proceso. Se ejecuta, desde el inicio hasta el final, una tarea cada vez. Porejemplo, cuando se le pide al usuario que introduzca en la aplicación sus datos personales, el programa no hace más nada hasta que el usuario brinde sus datos. Con varios hilos se puede realizar varias tareas de forma simultánea en el mismo proceso.


















Desarrollo

Conceptos

Proceso: es un programa en ejecución que está formado por uno o más hilos (threads) deejecución concurrente.

Thread: es una parte de un proceso que ejecuta un conjunto de instrucciones. Todos los threads de un proceso pueden compartir los recursos (memoria, ficheros abiertos, canales de comunicación, etc.) que el proceso pone a su disposición. La clase Thread del paquete java.lang permite crear y controlar los hilos.

Hilo o contexto de ejecución: está compuesto de trespartes principales una CPU, código y datos. Se dice que un hilo tiene su propia CPU, en realidad tiene una CPU virtual, pues tiene sus propios registros, pila, contador de programa, etc.

Multitarea: Es el modo que tienen los sistemas modernos de controlar la ejecución de varios programas. Aunque parezca que ejecutan varios programas de forma concurrente, la CPU en realidad está alternando loscontextos, dando a cada aplicación tiempo del CPU antes de cambiar a otra aplicación


Formas de crear threads de ejecución

Existen dos formas de trabajar con Hilos en Java. Una heredando de la clase Thread y otra implementando la interfaz Runnable.

Ejemplo heredando de thread
La primera forma (heredar de la clase Thread) se muestra a continuación:

public class MiHilo extends Thread
{public void run()
{
while(true)
{
System.out.println("Hilo activo");
}
}

public static void main(String args[])
{
MiHilo h=new MiHilo();
h.start();
while(true)
{
System.out.println("main activo");
}
}
}




Ejemplo implementando lainterfaz Runnable

La otra forma de trabajar con hilos es implementar la interfaz Runnable, cuyo único método es run, que es el que se ejecuta cuando iniciamos el hilo. La ventaja que tiene esta forma, es que me permite heredar de otra clase. Por ejemplo:

class MiHilo implements Runnable
{
public void run()
{
while(true)
{System.out.println("Hilo activo");
}
}

public static void main(String args[])
{
MiHilo h = new MiHilo();
Thread t = new Thread(h);
t.start();
while(true)
{
System.out.println("main activo");
}
}
}


Para que comience la ejecución el hilo, se debe invocar el métdo start(), que activa una llamadaal método run(), no se debe invocar directamente el método run() porque se ejecutará el thread principal en lugar de uno nuevo.

Métodos de control de Thread

La clase Thread proporciona muchos métodos útiles para su control. A continuación se les muestran algunos de los más empleados:

start(): Se utiliza para iniciar la ejecución del cuerpo del thread que se ha definido dentro del método...
tracking img