
SEGURIDAD INFORMATICA
CODIGO



Creamos los tres hilos, t1, t2 y t3 que son de la clase Cuenta, que son como puedes ver el constructor de Cuenta, requiere dos parámetros, el primero es la cantidad de milisegundos entre cada conteo, t1 dejará pasar medio segundo t2 un segundo completo y t3, dos segundos.

En el método stop lo que hacemos es paramos el conteo, es decir matamos al hilo, normalmente esto lo hacemos con una variable de control booleana.
Paramos el primer hilo de medio segundo:

Paramos el segundo hilo de un segundo:

Paramos el tercer hilo de dos segundos:

CODIGO
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class Hilos3 extends Applet implements ActionListener{
Button boton1 = new Button("Para el 1");
Button boton2 = new Button("Para el 2");
Button boton3 = new Button("Para el 3");
TextField cuenta1 = new TextField("0");
TextField cuenta2 = new TextField("0");
TextField cuenta3 = new TextField("0");
Cuenta t1, t2, t3;
public void init(){
setLayout(new GridLayout(2,3));
add(cuenta1);
add(cuenta2);
add(cuenta3);
add(boton1);
add(boton2);
add(boton3);
boton1.addActionListener(this);
boton2.addActionListener(this);
boton3.addActionListener(this);
}
public void start(){
t1 = new Cuenta(500,cuenta1);
t2 = new Cuenta(1000,cuenta2);
t3 = new Cuenta(2000,cuenta3);
t1.start(); t2.start();
t3.start();
}
public void stop(){
t1.contando = false;
t2.contando = false;
t3.contando = false;
}
public void actionPerformed(ActionEvent e){
if (e.getSource().equals(boton1))
t1.contando = false;
else if (e.getSource().equals(boton2))
t2.contando = false;
else if (e.getSource().equals(boton3))
t3.contando = false;
}
}
class Cuenta extends Thread{
long deltaT;
int cuenta=0;
TextField caja;
boolean contando = true;
public Cuenta(long deltaT, TextField caja){
this.deltaT = deltaT;
this.caja = caja;
}
public void run(){
while(contando){
cuenta ++;
caja.setText(Intejer.toString(cuenta));
try{
sleep(deltaT);
}
}
caja.setText("Ya se murió);
}
}