head> Reloj
 
FACULTAD DE CIENCIAS DE LA COMPUTACION
 
 
 

Reloj

import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;

public class Reloj extends Applet {

public void init() {
TextField mostrarSegundos = new TextField(20);
add(mostrarSegundos);
TextField mostrarMinutos = new TextField(20);
add(mostrarMinutos);


TicToc minutoTic = new TicToc();

Minuto minuto = new Minuto(mostrarMinutos, minutoTic);
minuto.start();

Segundo segundo = new Segundo(mostrarSegundos, minutoTic);
segundo.start();
}

class Segundo extends Thread {

private int segundos = 0;

private TextField mostrarSegundos;
private TicToc minutoTic;

public Segundo (TextField mostrarSegundos, TicToc minutoTic) {
this.mostrarSegundos = mostrarSegundos;
this.minutoTic = minutoTic;
}

public void run() {
while (true) {
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
System.err.println("Excepcion");
}

if (segundos == 59) {
minutoTic.tic();
segundos = 0;
}
else segundos++;
mostrarSegundos.setText(segundos + " segundos");
}
}
}

 

 

 

}

class Segundo extends Thread {

private int segundos = 0;

private TextField mostrarSegundos;
private TicToc minutoTic;

public Segundo (TextField mostrarSegundos, TicToc minutoTic) {
this.mostrarSegundos = mostrarSegundos;
this.minutoTic = minutoTic;
}

public void run() {
while (true) {
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
System.err.println("Excepcion");
}

if (segundos == 59) {
minutoTic.tic();
segundos = 0;
}
else segundos++;
mostrarSegundos.setText(segundos + " segundos");
}
}
}

class Minuto extends Thread {

private int minutos = 0;

private TextField mostrarMinutos;
private TicToc minutoTic;

public Minuto (TextField mostrarMinutos, TicToc minutoTic) {
this.mostrarMinutos = mostrarMinutos;
this.minutoTic = minutoTic;
}

public void run() {
while (true) {
minutoTic.esperarTic();

if (minutos == 59) {
minutos = 0;
}
else minutos++;
mostrarMinutos.setText(minutos + " minutos");
}
}
}

class TicToc {

private boolean ticOcurre = false;

public synchronized void esperarTic() {
while (!ticOcurre)
try {
wait();
}
catch (InterruptedException e) {
System.err.println("Excepcion");
}
ticOcurre = false;
}

public synchronized void tic() {
ticOcurre = true;
notify();
}
}



EJECUCION DEL PROGRAMA DE RELOJ

ESTE PROGRAMA ES UN EJEMPLO DE DOS SUBPROCESOS QUE SE AYUDAN ENTRE SI.

EL PRIMER SUBPROCESO ALTERA AL OTRO Y EL SEGUNDO ESPERA UN EVENTO QUE

AL OCURRIR REALIZA CIERTA ACCION




 
     

 

 

 

 

     
Hosted by www.Geocities.ws

1