Multihilos java
Programación concurrente
Programación de tareas que pueden ejecutarse en paralelo
Tiempo-Reproducir música
Descargar películaEditar archivo-imprimir
Ciclo de vida de un hilo
Maneras de crear un hilo
1)Creando una subclase de Thread
2)Implementando la interfaz Runnable en una clase
class Hiloextends Thread {
// Sobrecarga de este método here
// dado de Thread public void run() {
System.out.println(“Hilo ejecutándose.”);
}
}
class Programa {public static void main(String[] args)
{ Hilo h1 = new Hilo(); Hilo h2 = new Hilo(); h1.start(); h2.start();
}
}
class Hilo implements Runnable {
// Métodoespecificado en Runnable public void run()
{ System.out.println(“Hilo ejecutándose.”);
}
}
class Programa {
public static void main(String[] args) {Hilo h1 = new Hilo();
Hilo h2 = new Hilo();
Thread hilo1 = new Thread(h1);
Thread hilo1 = new Thread(h2) hilo1.start(); Hilo2.start();}
}
Elementos para sincronización
Secciones críticas
Método wait()
Métodos notify() y notifyAll()
Método sleep()
Método join()
Secciones críticas
Secciones delcódigo a las que solo un hilo puede acceder a la vez class Buffer {
// ... public synchronized int adquirir(int i) {
// Sección crítica
}
}
Métodos wait, notify y notifyAllwait() pone al hilo en espera, hasta que la sección crítica queda desbloqueada notify() notifica a un hilo (elegido arbitrariamente) que una sección crítica ha sido liberada, y este pasa a activonotifyAll() notifica a todos los hilos que una sección crítica ha sido desbloqueada, y éstos pasan a activo
public synchronized void metodo() {
while(!monitorDisponible) {
try {
wait();...
Regístrate para leer el documento completo.