Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3 Hilos PDF
3 Hilos PDF
BUAP
Introduccin
Introduccin
S. O. multitarea / multiproceso
Programacin multitarea (multihilo), multiproceso
Programacin (pseudo)concurrente
Dr. Ivan Olmos
Hilos
Hilos
Hola Mundo 2
Hola Mundo 3
Caractersticas Generales de
los Hilos
Thread 1
Thread 2
Thread 3
Multiproceso: dos
programas se
ejecutan
aparentemente a la
vez, sin necesidad
de tener una relacin
entre ellos
Multitarea: dos o
ms tareas se
ejecutan a la vez
dentro de un mismo
programa
Ejemplo
class TestHilos extends Thread{
private String nombre;
private int retardo;
//constructor
public TestHilos(String s, int d){
nombre = s;
retardo = d;
}
Programacin con
Hilos en Java
Introduccin
Thread
Mtodos de Instancia
10
Mtodos de Clase
currentThread()
yield()
sleep(long)
11
Mtodos de Instancia
start()
run()
stop()
suspend()
12
Mtodos de Instancia
resume()
Utilizada para revivir una tarea suspendida, aunque no se
garantiza que se inicie su ejecucin de forma inmediata
setPriority(int)
Asigna la prioridad indicada por int a una tarea (rango de
valores: 1, , 10). Existen constantes predefinidas como
MIN_PRIORITY, NORM_PRIORITY, MAX_PRIORITY
getPriority()
Devuelve la prioridad de una tarea en curso
setName(String)
Permite identificar a una tarea a travs de un nombre
getName()
Devuelve el valor actual de tipo cadena asignado como nombre
a la tarea
13
...
...
}
}
}
}
14
Ejemplo 1: Runnable
class NoHaceNada{
}
class MiHilo extends NoHaceNada implements Runnable{
private String nombre;
private int retardo;
hiloA.start();
hiloB.start();
try{
Thread.currentThread().sleep( 1000 );
} catch (InterruptedException e){}
System.out.println(Thread.currentThread());
}
15
Ejemplo 2: Thread
class MiHilo extends Thread{
private String nombre;
private int retardo;
//constructor
public MiHilo(String s, int d){
nombre = s;
retardo = d;
}
hiloA.start();
hiloB.start();
try{
Thread.currentThread().sleep(1000);
} catch(InterruptedException e){}
System.out.println(Thread.currentThread());
}
}
16
Ejemplo 3:
class TestHilos extends Thread{
private String nombre;
private int retardo;
//constructor
public TestHilos(String s, int d){
nombre = s;
retardo = d;
}
17
Sincronizacin de Hilos
18
Sincronizacin de Hilos
19