Código: Seleccionar todo
public class waitYnotify implements Runnable{
static int x=0;
public static void main(String[] args){
Runnable uno = new waitYnotify();
new Thread(uno).start();
Runnable dos = new waitYnotify();
new Thread(dos).start();
}
@Override
public void run() {
lanzar();
}
public synchronized void lanzar(){
try{
if(x==0){
x++;
System.out.println("soy el primero y me voy a dormir");
this.wait();
System.out.println("soy el primero y me acabo de despertar");
}else{
System.out.println("soy el segundo");
this.notify();
System.out.println("soy el segundo y he aviso al primero");
}
}catch(InterruptedException e){
System.out.println(e);
}
}
}
existen 4 println. solo se cumplen 3 hay esta el problema. lo que yo deseo es que imprima esto:
soy el primero y me voy a dormir
soy el segundo
soy el segundo y he aviso al primero
soy el primero y me acabo de despertar
pero se ve que uso mal el notify.
Salu2!