presentacion hilos java
Post on 07-Jul-2015
158 Views
Preview:
TRANSCRIPT
5/9/2018 Presentacion Hilos Java - slidepdf.com
http://slidepdf.com/reader/full/presentacion-hilos-java 1/141 de 14
UNIVERSIDAD DEL CAUCA
Hilos en Java
W. Libardo Pantoja YépezIng. Sistemas
5/9/2018 Presentacion Hilos Java - slidepdf.com
http://slidepdf.com/reader/full/presentacion-hilos-java 2/142 de 14
OBJETIVO
● Conocer la API de java para el manejo de hilos en java.
Hilos en java
5/9/2018 Presentacion Hilos Java - slidepdf.com
http://slidepdf.com/reader/full/presentacion-hilos-java 3/143 de 14
Agenda
●Definición de un hilo●Estado de un hilo●Prioridades de un hilo●La clase ThreadGroup●Los Programas multi-hilos● Sincronización de hilos
Hilos en Java
5/9/2018 Presentacion Hilos Java - slidepdf.com
http://slidepdf.com/reader/full/presentacion-hilos-java 4/144 de 14
Hilos/Thread/Procesos ligeros
- Def : Conjunto de instrucciones que se ejecutan secuencialmente y quesirve para llevar el control de un proceso. Un proceso es un programaen ejecución y tiene asignado unos recursos.
-- Un hilo no es un programa (no puede correr por si solo) pero corredentro de un programa.
- Un hilo (conocido a veces como un contexto de ejecución o un proceso ligero) es un simple flujo secuencial de control dentro de unproceso
Hilos en Java
5/9/2018 Presentacion Hilos Java - slidepdf.com
http://slidepdf.com/reader/full/presentacion-hilos-java 5/145 de 14
Hilos/Thread/Procesos ligeros
- Un programa en Java puede tener múltiples hilos.
- Se aprovechan las capacidades de Multitarea del Sistema Operativo.
- La conmutación entre hilos es más rápida que la conmutación entreprocesos.
- Java soporta hilos de modo nativo.
Hilos en Java
5/9/2018 Presentacion Hilos Java - slidepdf.com
http://slidepdf.com/reader/full/presentacion-hilos-java 6/146 de 14
Estado de un hilo
Hilos en java
5/9/2018 Presentacion Hilos Java - slidepdf.com
http://slidepdf.com/reader/full/presentacion-hilos-java 7/147 de 14
Threads en Java
1) Extender de la clase Thread y sobreescribir el método run()
2) Implementando la interface Runnable, la cual posee un único
método run(), que debemos sobreescribir.
Hilos en Java
5/9/2018 Presentacion Hilos Java - slidepdf.com
http://slidepdf.com/reader/full/presentacion-hilos-java 8/148 de 14
Prioridades de un Hilo
1)Vienen definidas por variables miembro de la clase Thread
2) Valor de 1 a 10. Por defecto es 5
3) setPriority(), getPriority().
Hilos en Java
5/9/2018 Presentacion Hilos Java - slidepdf.com
http://slidepdf.com/reader/full/presentacion-hilos-java 9/149 de 14
El Grupo de hilos● Cada hilo en java es miembro de un grupo de hilos.●Los grupos de hilos permiten manipular un conjunto de hilos en lugar demanipular los hilos de forma individual.●La definición de los grupos de hilos es implementada en la claseThreadGroup en el paquete java.lang.
Grupo de hilos por defecto:●Cuando una aplicación Java se inicializa, el sistema de ejecución crea unThreadGroup nombrado "main". Así, a menos que se especifique de otramanera, todo los nuevos hilos que se crean llegan a ser miembros del grupo
de hilos "main".
Hilos en java
il j
5/9/2018 Presentacion Hilos Java - slidepdf.com
http://slidepdf.com/reader/full/presentacion-hilos-java 10/14
10 de 14
La clase ThreadGroup●La clase ThreadGroup maneja grupos de hilos para aplicaciones de Java●Un ThrreadGroup puede manejar cualquier número de hilos.●
Una vez obtenido un ThreadGrupo de hilos es posible consultar información de otros hilos,o modificar el comportamiento de otros hilos.●Los grupos no solo pueden contener hilos sino también otros grupos de hilos
Hilos en java
Hil j
5/9/2018 Presentacion Hilos Java - slidepdf.com
http://slidepdf.com/reader/full/presentacion-hilos-java 11/14
11 de 14
Los Programas Multihilos
●Se usan cuando se requiere ejecutar múltiples hilos que comparteninformación y por lo tanto tienen que ejecutarse sincrónicamente.
●Por ejemplo:-
Cuando un hilo escribe datos a un archivo y otro hilo está leyendo datosdel mismo archivo.- En estos casos es necesario sincronizar los hilos para obtener los
resultados deseados.
Hilos en java
Hil j
5/9/2018 Presentacion Hilos Java - slidepdf.com
http://slidepdf.com/reader/full/presentacion-hilos-java 12/14
12 de 14
Sincronización de hilos●Aplicables a los escenarios tipo Productor/Consumidor●Ejemplo Productor/Consumidorclass Producer extends Thread {
private CubbyHole cubbyhole;private int number;public Producer(CubbyHole c, int number) {
cubbyhole = c;this.number = number;}
public void run() {
for (int i = 0; i < 10; i++) {cubbyhole.put(i);System.out.println("Productor #" + this.number + " coloca: " + i);try {
sleep((int)(Math.random() * 100));} catch (InterruptedException e) {}
}}
}
Hilos en java
Hil j
5/9/2018 Presentacion Hilos Java - slidepdf.com
http://slidepdf.com/reader/full/presentacion-hilos-java 13/14
13 de 14
Sincronización de hilos●Ejemplo Productor/Consumidor class Consumer extends Thread {
private CubbyHole cubbyhole;private int number;
public Consumer(CubbyHole c, int number) {cubbyhole = c;this.number = number;
}public void run() {
int value = 0;for (int i = 0; i < 10; i++) {value = cubbyhole.get();System.out.println("Consumidor #" + this.number + " obtiene: " + value);}
}}
El Productor y Consumidor comparten datos a través de un obj. Común CubbyHole.
La sincronización ocurre a bajo nivel(entre get() y put()).
Hilos en java
Hilos en java
5/9/2018 Presentacion Hilos Java - slidepdf.com
http://slidepdf.com/reader/full/presentacion-hilos-java 14/14
14 de 14
PrácticaVer práctica hilos
Hilos en java
top related