Hebras
Rafa Caballero - UCM
Programa Monoproceso (monotarea)
En cada momento hay una única
instrucción ejecutándose
Se dice que el programa es
monotarea, o monoproceso omonohebra (o single threading).
Rafa Caballero - UCM
Programa multiproceso
En algún punto el programa se
divide en varios procesos (threads)
que se ejecutan (aparentemente) de
manerasimultánea
Programa multiproceso, multitarea,
multihebra (o multithreading)
Rafa Caballero - UCM
Rafa Caballero - UCM
¿Para qué?
Programas que tengan que realizar varias
tareas de manerasimultánea
Programas en los que la ejecución de una
parte requiera tiempo y no deba detener el
resto del programa
¿Para qué ? Ejemplo 1
Programa que controla sensores en una fábrica: Los
procesos quese encargan de controlar sensores
diferentes son independientes y los sensores deben
controlarse de manera simultánea
Combustible
Temperatura
Programa
Presión
Tiempo
Rafa Caballero -UCM
Rafa Caballero - UCM
¿Para qué? Ejemplo 2
Durante la impresión de un documento (tarea
que puede tomar tiempo) el programa puede
y debe continuar ejecutándose.
Programa
RafaCaballero - UCM
Multitarea en Java
Idea: Definir clases especiales para las tareas que requieran
ejecutarse en una hebra de ejecución (thread) separada
Estas clases deben incluir la función especialpublic void
run(), equivalente a main() pero para hebras
Los objetos de la clase serán inicializados desde otra clase
con el método start()
Clase para multitarea
2 Métodos:
n
Medianteherencia (extensión) de la clase
java.lang.Thread
n
Mediante la implementación del interfaz
java.lang.Runnable
Rafa Caballero - UCM
Rafa Caballero - UCM
Ejemplo: extensión de Thread
Elprograma irá escribiendo dos sucesiones
ascendentes de números simultáneamente
Una hebra por cada contador
Ejemplo: Contadores (Versión 1)
class Contador extends Thread {
private int...
Regístrate para leer el documento completo.