/*CODIGO 1*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class sincro
{
public sincro (){}
public synchronized void Metodo1()
// int i=0;
{
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 a ser dormido...");
{
try
{wait();}
catch (InterruptedException e){}
System.out.println("El ilo b ha sido 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();
}
}
public class Sincronizacion
{
public static void main(String [] args)
{
sincro puerta =new sincro();
HiloB HB=new HiloB(puerta);
HiloA HA=new HiloA(puerta);
HA.start();
HB.start();
}
}
/*CODIGO 2*/
import java.awt.*;
import java.awt.event.*;
/**
* Sample application using Frame.
*
* @author
* @version 1.00 07/09/13
*/
public class SincronizacionFrame extends Frame {
/**
* The constructor.
*/
public SincronizacionFrame() {
MenuBar menuBar = new MenuBar();
Menu menuFile = new Menu();
MenuItem menuFileExit = new MenuItem();
menuFile.setLabel("File");
menuFileExit.setLabel("Exit");
// Add action listener.for the menu button
menuFileExit.addActionListener
(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
SincronizacionFrame.this.windowClosed();
}
}
);
menuFile.add(menuFileExit);
menuBar.add(menuFile);
setTitle("Sincronizacion");
setMenuBar(menuBar);
setSize(new Dimension(400, 400));
// Add window listener.
this.addWindowListener
(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
SincronizacionFrame.this.windowClosed();
}
}
);
}
/**
* Shutdown procedure when run as an application.
*/
protected void windowClosed() {
// TODO: Check if it is safe to close the application
// Exit application.
System.exit(0);
}
}
|