Programacion Concurrente
  Sincronización
 

/*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);
    }
}

 
   
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis