Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Deu2 Forou2 Rish 27102019
Deu2 Forou2 Rish 27102019
Aspecto 1:
Escriba una aplicación que permita implementar una carrera por relevos:
Se tienen 4 Atletas dispuestos a correr y una clase principal Carrera.
Todos los atletas empiezan parados, uno comienza a correr (tarda entre 9 y 11s) y al terminar su
carrera pasa el testigo a otro que comienza a correr, y así sucesivamente.
Sugerencias:
Utiliza
- Thread.sleep y Math.random para simular la carrera
- synchronized, wait y notify para el paso del testigo
Codigo:
package dau2a1;
import java.util.Scanner;
package dau2a1;
public class Atleta extends Thread{
private final int equipo;
Carrera sender;
@Override
public void run()
{
synchronized(sender)
{
while(sender.activo != false)
{
try
{
this.wait();
}
catch(InterruptedException e)
{}
}
sender.correr(equipo);
}
}
package dau2a1;
import java.util.Random;
public class Carrera {
boolean activo = false;
int turno = 1;
int tc = 0;
int te=0;
}else if(turno==4){
System.out.println("A"+turno+"E"+ (equipo+1) +" Llega a la Meta");
System.out.println("Tiempo por Equipo " + (equipo+1) + ": " + (double) (this.getTc()/200));
}
activo = false;
turno++;
this.notify();
}
}
Pantalla de Salida
Aspecto 2:
La respuesta
Aspecto 3: