Está en la página 1de 13

HILOS

Jacob Navia Mancera Viviana Martnez Medina Guillermo Jimnez Ruvalcaba

Un hilo es un proceso que se est ejecutando en un momento determinado en nuestro sistema operativo y se realiza directamente en el procesador.

En Java, el proceso que siempre se ejecuta es el llamado main que es a partir del cual se inicia prcticamente todo el comportamiento de nuestra aplicacin. existen algunas aplicaciones que requieren ms de un proceso (o hilo) ejecutndose al mismo tiempo (multithreading).

En Java un hilo o Thread puede ser 2 cosas: + Una instancia de la clase java.lang.Thread + Un proceso en ejecucin Una instancia de la clase java.lang.Thread, no es ms que cualquier otro objeto, con variables y mtodos predefinidos. Un proceso en ejecucin es un proceso individual que realiza una tarea o trabajo, tiene su propia pila de informacin independiente a la de la aplicacin principal.

Aquellos mtodos que siempre tenemos que tener presentes con respecto a los hilos son: start() yield() sleep() run()

La accin sucede dentro del mtodo run(), si queremos realizar diversas operaciones cada una simultnea pero de manera independiente, tendremos varias clases, cada una con su respectivo mtodo run().

Para definir e instanciar un nuevo Thread (hilo, proceso) existen 2 formas: + Extendiendo (o heredando) a la clase java.lang.Thread + Implementando la interfaz Runnable

Extendiendo java.lang.Thread:: 1.- Hereda a la clase java.lang.Thread por medio de la palabra 'extends'. 2.- Redefine el mtodo run(). P. ej. class MiHilo extends Thread{ public void run(){ System.out.println("Trabajo por hacer dentro de MiHilo"); } public void run(String s){ System.out.println("La cadena ingresada es " + s); } }

Implementando la interfaz Runnable:: 1.- Implementa a la interfaz Runnable por medio de la palabra 'implements'. 2.- Redefine el mtodo run(). P. ej.

class MiHilo implements Runnable{ public void run(){ System.out.println("Trabajo por hacer dentro de MiHilo"); } }

Independientemente de cmo definas tu hilo (por medio de extends Thread o implements Runnable), el hilo tendr el mismo comportamiento. Si has extendido la clase Thread, el instanciar el hilo es realmente simple: MiHilo h = new MiHilo();

Si

has

implementado

la

interfaz

Runnable:

MiHilo h = new MiHilo(); Thread t = new Thread(h); // Pasas implementacin de Runnable al nuevo Thread tu

Puedes pasar una misma instancia de una clase que implementa Runnable a diversos objetos de tipo Thread... public class PruebaHilos{ public static void main (String[] args) { MiHilo h = new MiHilo(); Thread t1 = new Thread(h); Thread t2 = new Thread(h); Thread t3 = new Thread(h); } }

El pasar un solo objeto tipo MiHilo a varios objetos tipo Thread significa que el trabajo que se encuentra dentro del mtodo run() de MiHilo se realizar en diversas ocasiones, o lo que es lo mismo, varios hilos realizarn el mismo trabajo.

Bibliografa
(05 de Mayo de 2013). Obtenido de http://monillo007.blogspot.com/2008/01/hilosen-javathreads-parte-5.html