Next: Bibliografía
Up: Tareas de programación
Previous: Planificación con prioridades
  Índice General
Estructuras de datos concurrentes
- Implementa una lista concurrente con la version de Java 5.
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 deben interactuar iteradores con los demás operaciones?
- ¿Cómo implemento un caso de prueba?
- Ayudas:
- Existe una versión para Java 1.4 que desarrollamos en años
anteriores que podría servir como base (busca en mi página web
de cursos anteriores).
- Estudia bien el paquete: java.lang.concurrent
Tarea adicional para los interesados:
- implementa una clase de lista concurrente en C++ con hilos
POSIX o con hilos de la librería glib.
- implementa una clase de lista concurrente en C# con hilos.
Para aquellos que no quieren parar:
- Implementa una tabla de dispersión concurrente (hashtable)
aprovechando de la lista concurrente.
- Implementa una tabla de dispersión concurrente (hashtable)
con el método de Cuckoo Hashing.
- Implementa un grafo concurrente (graph), a algunas de
operaciones interesantes sobre dicha estructura de datos.
- Implementa cualquer otra estructura de datos concurrente que te resulta
útil para desarrollar programas concurrentes.
Next: Bibliografía
Up: Tareas de programación
Previous: Planificación con prioridades
  Índice General
© 2006, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática