Ding Dong Ding…último aviso para los pasajeros del vuelo F0666 con destino Bikolandia

Comenzamos leyendo la práctica, ya queda poquito y hay que apurar el tiempo. Nos repartimos el trabajo, uno pregunta dudas del videojuego, mientras el otro se pone con la práctica. Compilamos Ding, compilamos Dong, DingDongPoor pero este tiene un pequeño fallo que nosotros debemos de solventar.  La solución que te dan es lanzar dos Threads, para realizar dos cosas a la vez: que imprima Ding cada vez que le das al INTRO y Dong cada segundo. Al principio cambiamos el código de TwoThreads y sólo conseguimos que imprima Dong, y al dar al Intro no ocurre nada. Después de 20 min comiendonos la cabeza, llegamos a la conclusión de que no hemos entendido como funciona jajaja así que empezamos otra vez. Bueno y esto es la respuesta para que funcione el Ding y el Dong a la vez, les hemos puesto comentarios para que si no lo habeis entendido os sirva de ayuda, o eso esperamos:

import java.io.IOException ;// para la excepción del Ding

 

class

TwoThreads
{

public static void Dong( ){
  try
{ while (true) // esto es un bucle del que nunca sale, porque si es true entra
//y mientras no pase el segundo  se queda ahí, hasta que vuelva a ser true. 

{Thread.sleep(1000);// Corre el tiempo

System.out.println(“DONG!”);//Imprime Dong!}

}
catch (InterruptedException e)

{

System.out.println(“Interrupted while sleeping”); }
}
public static void Ding() { 
 try

{

while (true)
{if (System.in.read() == ‘\n’)

 

System.out.println(“DING!”);}
}//try
catch (IOException e)

{

System.out.println(“IO error on System.in”);}
}//Ding
//Vamos a probar así que todo funciona
public static void main(String args[])

//Creamos un objeto de la clase r, donde se
//guardara lo que hace el método run

 Runnable r = new Runnable()

 {

public void run() {Ding();} };// el método run ejecuta el método Ding
Runnable s = new Runnable () // se crea otro objeto para hacer lo mismo
//pero con el Dong

{

public void run() {Dong();}
};
Thread t = new Thread(r); // creas un objeto de la clase Thread pasandole el
//parámetro r que lleva la infoermeación del método Dingt.start();
// ejecuta el método
t.start();
Thread k = new Thread (s); // lo mismo
k.start();
PrintThreadName();

}

}

Y así conseguimos que el Ding se imprima cada vez que pulsas ENTER y Dong al mismo tiempo se imprima cada 3 segundos.Espero que me haya explicado jajaja, sino poneis un comentario. El resto de la práctica lo intentaremos durante la semana. Saludos!!!

 

 

 

 

 

1 Comentario(s)

  1. Hombre, dejar ahí el código sin más, sin una discusión, un análisis, un contar… :-)


RSS de los Comentarios Identificador URI de TrackBack

Deja un comentario