Next: Soluciones
Up: Concurrencia y Distribución
Previous: Detección de terminación
Las tareas de programación son simples de describir, pero
no tan simples de realizar.
- Implementa el pingPONG perfecto.
Ten los siguientes detalles en cuenta:
- Experimenta con los diferentes intentos presentados en los apuntes.
- Desarrolla una solución con las siguientes propiedades:
- Usa tres hilos (uno para el programa principal, o el árbitro,
uno para cada jugador).
- El árbitro inicia el juego (mensaje previo a la pantalla).
- Los jugadores producen sus pings y PONGs
alternamente.
- El árbitro termina el juego después de cierto tiempo
(mensaje previo a la pantalla).
- Los jugadores realizen como mucho un intercambio de pelota.
- Ambos jugadores/hilos terminan (mensaje previo a la pantalla).
- El árbitro escribe el último mensaje.
- El programa termina.
- Implementa el pingPONG entre dos ordenadores.
- Asume que los IPs están conocidos.
- Duplica la salida en los tres ordenadores, cada uno pone un
prefijo delante, p.ej., arbitro:, jugar rojo:,
y jugador azul.
- Implementa una lista concurrente.
Ten los siguientes detalles en cuenta:
- Queremos que varios hilos pueden insertar o borrar al mismo tiempo
(claro, en diferentes sitios de la lista).
- Desarrolla una semántica adecuado para una lista concurrente, entre
otras, te debes contestar las siguientes preguntas:
- ¿Debo mantener la longitud actual de la lista?
- ¿Qué tipo de inserción uso como base para los demás?
- ¿En qué orden adquiero los cerrojos necesarios?
- ¿Cómo trato intentos concurrentes de borrar el mismo
elemento al mismo tiempo?
- ¿Qué hacen los iteradores?
- ¿Cómo implemento un caso de prueba?
- Ayuda:
- Busca en la red: Doug Lea
(que ha hecho disponible una sugerencia para una librería de
Java: java.lang.concurrent)
- Mira como se ha implementado la cola.
Subsecciones
Next: Soluciones
Up: Concurrencia y Distribución
Previous: Detección de terminación
© 2003, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática