Hilos

Solo disponible en BuenasTareas
  • Páginas : 6 (1271 palabras )
  • Descarga(s) : 0
  • Publicado : 10 de mayo de 2010
Leer documento completo
Vista previa del texto
Hilos la ejecución de los programas existen muchas Durante








operaciones que precisan de una espera; en busca de una interacción con el exterior, dejando pasar el tiempo, esperando a que otro proceso acabe... Java permite que estos tiempos desaprovechados sean utilizados por el programador para realizar determinadas tareas, y así aprovechar el microprocesador durante toda laejecución del programa. Para ello implementa el concepto de threads, o hilos de control del programa. Mediante el uso de varios threads, se consigue ejecutar varios procesos en paralelo, de forma que cuando uno de ellos esté esperando algún evento, permita que el microprocesador ejecute alguno de los otros threads en espera. Cuando el evento que el primer thread esperaba sucede, de nuevo seintercambian los threads para que el primer thread continúe su ejecución. Todo esto viene a suplir a la técnica de exclusión mutua denominada utilización de semáforos.

Utilización de thread




Para crear un thread, se ha de implementar una clase, extendiendo la clase base Runnable, y crear un objeto de la clase Thread. Este objeto representará un nuevo hilo de control, que será accionadocuando invoquemos al método start() del thread. En ese momento este hilo se activará, ejecutando (si el planificador de hilos considera que es el momento), el método run() de la clase en que todo esto suceda. Por ejemplo, el siguiente programa utiliza dos hilos, el hilo general main, y el hilo thDemo que creamos:

Hilos


Un hilo en Java es: + Una instancia de la clase java.lang.Thread + Unproceso en ejecución - En una aplicación Java, el hilo principal es el derivado de la clase main, al cual llamamos proceso o hilo main.

- Cuando se trata de hilos, muy pocas cosas está garantizadas.


- Los principales métodos a tomar en cuenta con el manejo de los hilos son: start(), yield(), sleep() y run(). - Toda la acción o trabajo sucede dentro del método run(). - Para definir einstanciar un nuevo Thread (hilo, proceso) existen 2 formas: + Extendiendo (o heredando) a la clase java.lang.Thread + Implementando la interfaz Runnable

Hilos


Siempre se necesita un objeto tipo Thread para realizar el trabajo, independientemente si extiendes la clase Thread o implementas Runnable.

- Puedes pasar una misma instancia de una clase que implementa Runnable a diversos objetos detipo Thread.
Continuando con lo visto anteriormente, existen diversos tipos de constructores a partir de los cuales se puede crear un hilo, algunos de los más importantes son:


+ Thread() + Thread(objetoRunnable) + Thread(objetoRunnable, String nombre) + Thread(String nombre) Una vez que creamos e instanciamos un objeto tipo Thread, se dice que el objeto está en un estado 'new' o 'nuevo', esdecir, ya existe pero aún no ha empezado con su trabajo, no está 'vivo'. Una vez que mandamos llamar al método start(), el hilo es considerado vivo o alive y se le considera como un hilo o proceso muerto una vez que el método run() fue completado. Existe un método para saber si el hilo está vivo o en ejecución, el método isAlive().

Hilos


Hasta ahora sabemos cómo crear el objeto tipoThread e instanciarlo y sabemos que debe de estar en un estado vivo para que realice su función, para ello se utiliza el método start().



hilo.start(); Se debe de llamar al método start() a través de una instancia de la clase Thread. Una vez que llamamos al método start() sucede lo siguiente: + Un nuevo proceso de ejecución comienza (con su propia pila de información). + El hilo o procesocambia de estado nuevo o new a estado de ejecución o runnable. + Cuando el hilo tenga su turno de ejecutarse, el método run() del objeto al que refiere se ejecuta.

Ejemplo
public class Hilo { public static void main(String[] args) { System.out.println("Dentro de main..."); General hn = new General(); Thread nuevoHilo = new Thread(hn); nuevoHilo.start(); } } class General implements Runnable {...
tracking img