Multihilos java

Solo disponible en BuenasTareas
  • Páginas : 2 (352 palabras )
  • Descarga(s) : 0
  • Publicado : 1 de febrero de 2012
Leer documento completo
Vista previa del texto
Programación Multihilos en 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();...
tracking img