Hilos en java
Leidy Carvajal Ortiz Lisa Fernanda Betancourt Leydi Carvajal Henao
Universidad del Valle
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Introduccion
Introduccion
Un proceso puede informalmente entenderse como un programa en ejecuci on. Formalmente un proceso es Una unidad de actividad que se caracteriza por la ejecuci on de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociados. Un hilo es una secuencia de c odigo en ejecuci on dentro del contexto de un proceso. Los hilos no pueden ejecutarse ellos solos; requieren la supervisi on de un proceso padre para correr. Dentro de cada proceso hay varios hilos ejecut andose.
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Introduccion
Benecios
Grado de respuesta: una operaci on multihilos en una aplicaci on interactiva puede permitir que un programa continue en ejecucion, incluso si una de sus partes esta bloqueada o realizando una operaciontardada, lo que incrementa el grado de respuesta al usuario. Compartir recursos: por omisi on, los hilos comparten la memoria y los recursos del proceso al que pertenecen. el benecio de compartir c odigo permite que una aplicaci on tenga varios hilos diferentes de actividad, todos dentro del mismo espacio de direcciones.
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Introduccion
Benecios
Economia: la asignacion de memoria y recursos para la creacion de procesos es costosa, debido a que los hilos comparten recursos del proceso al que pertenecen, es mas economico crear hilos y cambiar su contexto. Utilizacion de arquitecturas de multiprocesadores: los benecios de la operaci on multihilos pueden incrementarse en forma signicativa en una arquitectura de multiprocesadores, en donde cada hilo puede estar ejecuntandose en paralelo en un procesador diferente. En una arquitectura de un solo procesador, la CPU generalmente se mueve entre cada hilo de manera tan rapida que existe la ilusion de paralelismo, pero en realidad solo un hilo esta en ejecuci on a las vez.
Leidy,Lisa,Joanna Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable ThreadDeath ThreadGroup Object
Thread
Es la clase que encapsula todo el control necesario sobre los hilos de ejecuci on (threads). Es responsable de producir hilos funcionales para otras clases. Para controlar el comportamiento de los hilos la clase Thread dene metodos como start() y stop(), los cuales permiten comenzar y parar la ejecuci on del hilo.
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable ThreadDeath ThreadGroup Object
Metodos de la clase Thread
M etodo currentThread() yield() Devuelve el objeto thread que representa al hilo de ejecuci on que se est a ejecutando actualmente. Hace que el interprete detenga temporalmente la ejecuci on del objeto del hilo y permita que el siguiente hilo disponible se ejecute. Provoca que el int erprete de Java ponga la tarea a dormir durante un tiempo indicado en milisegundos, transcurrido dicho tiempo la tarea estar a disponible para ejecuci on
sleep( long )
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable ThreadDeath ThreadGroup Object
Metodos de la clase Thread
M etodo start() Este m etodo indica al int erprete de Java que cree un contexto del hilo del sistema y comience a ejecutarlo. El m etodo run() constituye el cuerpo de un hilo en ejecuci on. Este m etodo provoca que el hilo se detenga de manera inmediata. suspend(),resume(),setPriority( int ) getPriority(),setName( String ),getName()
run() stop( ) Otros m etodos
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable ThreadDeath ThreadGroup Object
Runnable
La interfaz Runnable proporciona la capacidad de a nadir la funcionalidad de un hilo a una clase a trav es del metodo run().
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable ThreadDeath ThreadGroup Object
ThreadDeath
Proporciona medios para manejar y noticar errores. Cuando el m etodo stop() de un hilo es invocado, una instancia de ThreadDeath es lanzada por el hilo como un error.
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable ThreadDeath ThreadGroup Object
ThreadGroup
Se utiliza para manejar un grupo de hilos de modo conjunto. Esta clase proporciona m etodos stop(), suspend() y resume() para controlar la ejecuci on de todos los hilos pertenecientes al grupo.
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable ThreadDeath ThreadGroup Object
Object
Proporciona los m etodos wait(), notify() y notifyAll().
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable Thread Vs. Runnable
Hilos en Java
El soporte para hilos lo proporciona el sistema operativo o bien un paquete de biblioteca de hilos. Java es unico, ya que proporciona el soporte a nivel de lenguaje para la creacion y administracion de hilos. . Todo programa en java incluye por lo menos un hilo de control simple.
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable Thread Vs. Runnable
Creaci on de Hilos
En cuanto al proceso de creaci on de hilos, son dos los mecanismos que nos permiten llevarlo a cabo en Java: implementando la interfaz Runnable, o extendiendo la clase Thread.
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable Thread Vs. Runnable
Creacion de hilos por medio de la clase Thread
Consiste en la creaci on previa de una subclase de la clase Thread
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable Thread Vs. Runnable
Creacion de hilos por medio de la clase Thread
La creaci on de un objeto que se deriva de la clase Thread no crea de manera especica al hilo,mas bien el m etodo start() es el que realmente lo crea.
(NOTA: nunca se debe llamar al metodo run() directamente. Hay que llamar al metodo start() y este llamara al metodo run().
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable Thread Vs. Runnable
Creacion de hilos por medio de la interfaz Runnable
Consiste en denir una clase que implemente la interfaz Runnable. Esta interfaz se dene de la siguiente manera:
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable Thread Vs. Runnable
Creacion de hilos por medio de la interfaz Runnable
La creaci on de un nuevo hilo a partir de una clase que implementa Runnable. Es ligeramente diferente de la creaci on de un hilo a partir de una clase que extienda de Thread. Dado que la nueva clase no extiende a Thread, no tiene acceso a los m etodos est aticos o de instancia como el m etodo start() .Sin embargo, todav a se necesita un objeto de la clase Thread debido a que es el m etodo start() el que crea el nuevo hilo de control.
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable Thread Vs. Runnable
Creacion de hilos por medio de la interfaz Runnable
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable Thread Vs. Runnable
Porque java soporta dos enfoques para la creaci on de hilos?
Debido a que java no soporta herencia m ultiple. En el caso de crear un hilo extendiendo la clase Thread, se pueden heredar los m etodos y variables de la clase padre. Si es as , una misma subclase solamente puede extender o derivar una vez de la clase padre Thread. Esta limitaci on de Java puede ser superada a trav es de la implementaci on de Runnable.
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable Thread Vs. Runnable
Hilos en java
Que enfoque es mas apropiado?
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable Thread Vs. Runnable
Que enfoque es mas apropiado?
Si la clase hereda de otra, implementar Runnable. Normalmente es mas sencillo heredar de Thread.
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable Thread Vs. Runnable
Estado y control de un hilo
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Thread Runnable Thread Vs. Runnable
Agrupamiento de hilos
Los grupos de hilos proporcionan un mecanismo de reuni on de m ultiples hilos dentro de un u nico objeto y de manipulaci on de dichos hilos en conjunto, en lugar de una forma individual. La clase ThreadGroup ofrece la funcionalidad necesaria para la manipulaci on de grupos de hilos para las aplicaciones Java.
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Prioridad Tiempo Compratido
Prioridad
Todo hilo en Java tiene una prioridad ,la cual ayuda al sistema operativo a determinar el orden en el que se programan los hilos. Las prioridades de Java var an entre MIN PRIORITY (una constante de 1) y MAX PRIORITY (una constante de 10). De manera predeterminada, cada hilo recibe la prioridad NORM PRIORITY (una constante de 5).
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Prioridad Tiempo Compratido
Prioridad
El entero m as alto designar a la prioridad m as alta y el m as bajo,la menor. Se ejecutar a primero el hilo de prioridad superior,llamado Ejecutable, y s olo cuando este para, abandona o se convierte en No Ejecutable, comienza la ejecuci on de en hilo de prioridad inferior. Si dos hilos tienen la misma prioridad, el programador elige uno de ellos en alguna forma de competici on.
Nota:Las constantes (MAX PRIORITY , MIN PRIORITY, NORM PRIORITY) se declaran en la clase Thread.
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Prioridad Tiempo Compratido
Prioridad
Para establecer una prioridad [Link](valor Entero);
Para obtener la prioridad de un hilo [Link]();
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Prioridad Tiempo Compratido
Tiempo compartido
La estrategia del tiempo compartido determina cu al de una serie de hilos con igual prioridad se pasa a ejecutar.
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
Sincronizacion
Sincronizacion
Cuando en un programa tenemos varios hilos corriendo simult aneamente es posible que varios hilos intenten acceder a la vez a un mismo sitio (un chero, una conexi on, un array de datos) y es posible que la operaci on de uno de ellos entorpezca la del otro. Para evitar estos problemas, hay que sincronizar los hilos.
Leidy,Lisa,Joanna
Hilos
Conceptos Basicos Clases Relacionadas con hilos Creacion de hilos Prioridad de los hilos Sincronizacion
References
[Link] hilos_tutorial-java/[Link] [Link] trabajos/[Link] [Link] Interactiva/lecturas/[Link]
Leidy,Lisa,Joanna
Hilos