import java.awt.*;
import java.io.*;
import java.lang.*;
class Sincro {
public Sincro(){}
public synchronized void Metodo1(){
for(int i=0; i<100; i++){
notify();
System.out.println("lanzando se�ales........");
}
}
public synchronized void Metodo2(){
System.out.println("el hilo B va ser dominado...");
try{
wait();}
catch(InterruptedException e){}
System.out.println("el hilo B va ser despertado...");
}
}
class HiloA extends Thread{
private Sincro Obj;
public HiloA(Sincro Ref){
Obj=Ref;
}
public void run(){
Obj.Metodo1();
}
}
class HiloB extends Thread{
private Sincro Obj;
public HiloB(Sincro Ref){
Obj=Ref;
}
public void run(){
Obj.Metodo2();
}
}
class Sincronizacion{
public static void main(String[] args) {
Sincro Puerta=new Sincro();
new HiloB(Puerta).start();
new HiloA(Puerta).start();
}
}