Вы находитесь на странице: 1из 10

26/07/2017

PhD. Ana Mara Zambrano V.

Ejecutar operaciones concurrentemente

TODO AL MISMO TIEMPO

PhD. Ana Mara Zambrano V.

1
26/07/2017

Ejecutar operaciones concurrentemente

TODO AL MISMO TIEMPO

PhD. Ana Mara Zambrano V.

Los procesos tienen su


propio espacio de
memoria.

Los threads comparten


memoria.

El cambio de contexto
(switching) entre procesos
toma mas tiempo que los
threads.

PhD. Ana Mara Zambrano V.

2
26/07/2017

Es un flujo de ejecucin
independiente que tiene
su propia pila de usuario
y su propio PC.

Al ver un video en youTube.


Tienes que esperar a que se
descargue todo el video para
empezar a verlo?

Descargamos una porcin


y la reproducimos.
Descargamos otra porcin
y la reproducimos.

PhD. Ana Mara Zambrano V.

Proceso independiente ejecutado por un Sistema Operativo.


Permiten realizar varias tareas en forma simultnea

Proceso1 Proceso2 Proceso3 Proceso4 Hilo 1


15 seg 10 seg 20 seg 5seg
Hilo 2

Hilo 3
Hilo 4
Tiempo total=50 segundos
Tiempo total=20 segundos
Ejecucin sin emplear hilos Ejecucin multihilo

PhD. Ana Mara Zambrano V.

3
26/07/2017

La mquina virtual de java es un sistema multihilo.

Permiten realizar varias tareas en forma simultnea.

La JVM controla la asignacin de tiempos de ejecucin y


prioridades de forma similar a la gestin realizada por
un Sistema Operativo

Java permite implementar un sistema multihilo mediante


clases e interfaces del paquete java.lang.

PhD. Ana Mara Zambrano V.

Estados de un hilo:
ESTADO DESCRIPCIN
Nace El hilo ha sido declarado
Listo Preparado para entrar en ejecucin
Ejecutndose Se est ejecutndose en la CPU
Dormido Proceso detenido mediante un tiempo definido
Bloqueado Pendiente de una operacin de I/O
Suspendido Detenido temporalmente por suspend(), se reanudar
con resume()
Esperando Detenido por una condicin se reanudar con notifiy()
y notifyAll()
Muerto Termin su ejecucin o trabajo

PhD. Ana Mara Zambrano V.

4
26/07/2017

Estados de un hilo

PhD. Ana Mara Zambrano V.

Creacin de un hilo

PhD. Ana Mara Zambrano V.

5
26/07/2017

Creacin de un hilo:
Para crear un hilo se puede:
Extender de la clase Thread y redefinir el mtodo run()
Implementar la interfaz Runnable y definir el mtodo run().
El hilo se inicia con la llamada al mtodo run() y termina cuando
finalice lo establecido por run().
Mtodos de Clase Thread
Mtodo Descripcin
currentThread() Retorna el objeto thread que representa al hilo de
ejecucin que se est ejecutando actualmente
yield () Cambio de contexto entre el hilo actual y el
siguiente hilo ejecutable disponible.
sleep () Dormir al hilo en curso durante el tiempo
establecido como parmetro
PhD. Ana Mara Zambrano V.

Creacin de un hilo:
Mtodos de Instancia

Mtodo Descripcin
start() Indica al intrprete de java que cree un contexto del
hilo del sistema y comience a ejecutarlo.

run() Cuerpo del hilo en ejecucin. nico mtodo de la


Interfaz Runnable. ste mtodo es llamado por el
mtodo start().

stop () Detiene la ejecucin del hilo de forma inmediata

setPriority(int) Asigna al hilo la prioridad indicada en el parmetro

setName(String) Permite identificar al hilo con un nombre.

PhD. Ana Mara Zambrano V.

6
26/07/2017

Mtodo run(): Mtodo start():

Define las instrucciones


Inicia el thread que
que sern ejecutadas por
ejecutar un mtodo run()
el thread.

Debe ser sobrescrito en la Luego de ejecutar el


subclase de Thread o en thread, retorna al punto
la clase que implementa de invocacin de Thread
la interfaz Runnable. llamante.

SLO SE INVOCA UNA VEZ

PhD. Ana Mara Zambrano V.

Static void sleep (long tiempo) Boolean isAlive()

Mtodo esttico que pone Retorna true si fue el


a dormir a un thread por thread fue iniciado
un tiempo determinado (llamado al mtodo
(milisegundos) start()) pero el thread an
no ha terminado.

Evita que un thread entre


en contienda por el
procesador.

PhD. Ana Mara Zambrano V.

7
26/07/2017

Creacin de un hilo:

Interfaz Runnable
Existen cuatro constructores para crear hilos usando la
interfaz Runnable.
public Thread(Runnable target)
Se pasa solamente la implementacin de la
interfaz Runnable
public Thread(Runnable target, String name)
Se pasa la implementacin de la interfaz Runnable y
un nombre para el hilo
public Thread(ThreadGroup group, Runnable
target)
Construye un hilo dentro de un grupo de hilos

PhD. Ana Mara Zambrano V.

Prioridades:

Para controlar la ejecucin concurrente de procesos Java


emplea un mecanimo llamado Planificacin por prioridad
fija(fixed priority scheduling).

La prioridad de un hilo es un valor entero que puede ser


asignado con el mtodo setPriority(). Un valor entero
mayor indica que el hilo tiene mayor prioridad de
ejecucin.

La prioridad puede estar en un rango de [1-10], siendo


el valor por defecto 5.

PhD. Ana Mara Zambrano V.

8
26/07/2017

Prioridades:
Por defecto la prioridad de un hilo es igual a la prioridad del
hilo que la cre.

Si dos o ms hilos en el sistema inician su ejecucin y


tienen la misma prioridad, la mquina virtual de Java cede
control de forma cclica(round-robin).

Cuando un hilo con prioridad ms alta interrumpe a otro


hilo en el sistema se tiene el concepto de planificacin
apropiativa (preemptive scheduling).

El mtodo yield() permite ceder el procesador a threads de


igual prioridad.

PhD. Ana Mara Zambrano V.

Prioridades:

Subprocesos de
Los subprocesos igual prioridad
se ejecutan se ejecutan de
hasta terminar forma cclica
sus tareas, hasta terminar
siempre que no sus tareas
exista un respectivas.
subproceso de
mayor prioridad
listo para
ejecutarse.

PhD. Ana Mara Zambrano V.

9
26/07/2017

Scheduler:
Todo el tiempo se
ejecuta el thread
de ms alta
prioridad

Asegura que los


procesos de igual
prioridad se
ejecuten de forma
cclica (round
robin)

PhD. Ana Mara Zambrano V.

Implementar una aplicacin que se herede de la clase Thread.


Use el mtodo sleep.
Qu har el programa?
Cree cuatro hilos, que duerman durante una cantidad de tiempo
aleatoria.

Despus de despertar, imprime su nombre.


El programa tendr dos clases:
ThreadImprimir.
Hereda de la clase Thread.
Tiene un atributo temporizadorSleep.
AplicacionThread
Crea cuatro objetos ThreadImprimir

PhD. Ana Mara Zambrano V.

10

Вам также может понравиться