UT02: Programación multihilo.

CP

OG

RA

Contenidos propuestos

Contenidos según normativa

i), l), n), t), w)

 

i), l), ñ)

 

2

 


 1.- Introducción.

 2.- Conceptos sobre hilos.
     2.1.- Recursos compartidos por los hilos.
     2.2.- Ventajas y uso de hilos.

 3.- Multihilo en Java. Librerías y clases.
     3.1.- Utilidades de concurrencia del paquete java.lang.
     3.2.- Utilidades de concurrencia del paquete java.util.concurrent.

 4.- Creación de hilos.
     4.1.- Creación de hilos extendiendo la clase Thread.
     4.2.- Creación de hilos mediante la interfaz Runnable.

 5.- Estados de un hilo.
     5.1.- Iniciar un hilo.
     5.2.- Detener temporalmente un hilo.
     5.3.- Finalizar un hilo.
     5.4.- Ejemplo. Dormir un hilo con sleep.

 6.- Gestión y planificación de hilos.
     6.1.- Prioridad de hilos.
     6.2.- Hilos egoístas y programación expulsora.

 7.- Sincronización y comunicación de hilos.
     7.1.- Información compartida entre hilos.
     7.2.- Monitores. Métodos synchronized.
     7.3.- Monitores. Segmentos de código synchronized.
     7.4.- Comunicación entre hilos con métodos de java.lang.Object.
     7.5.- El problema del interbloqueo (deadlock).
     7.6.- La clase Semaphore.
     7.7.- La clase Exchanger.
     7.8.- Las clase CountDownLatch.
     7.9.- La clase CyclicBarrier.

 8.- Aplicaciones multihilo.
     8.1.- Otras utilidades de concurrencia.
     8.2.- La interfaz Executor y los pools de hilos.
     8.3.- Gestión de excepciones.
     8.4.- Depuración y documentación.
  • Recursos compartidos por los hilos.
  • Estados de un hilo. Cambios de estado.
  • Elementos relacionados con la programación de hilos.
  • Librerías y clases.
  • Gestión de hilos.
  • Creación, inicio y finalización.
  • Sincronización de hilos.
  • Compartición de información entre hilos.
  • Prioridades de los hilos.
  • Gestión de prioridades.
  • Programación de aplicaciones multihilo.
  • Documentación.
  • Depuración.
 

CP = Competencias Profesionales. OG = Objetivos Generales. RA: Resultados de Aprendizaje

En las columnas CPOG y RA, el número o letra se corresponde con las tablas anteriores.

Criterios de Evaluación Ponderación
2a.- Se han identificado situaciones en las que resulte útil la utilización de varios hilos en un programa. 2
2b.- Se han reconocido los mecanismos para crear, iniciar y finalizar hilos. 2
2c.- Se han programado aplicaciones que implementen varios hilos. 2
2d.- Se han identificado los posibles estados de ejecución de un hilo y programado aplicaciones que los gestionen. 3
2e.- Se han utilizado mecanismos para compartir información entre varios hilos de un mismo proceso. 3
2f.- Se han desarrollado programas formados por varios hilos sincronizados mediante técnicas específicas. 3
2g.- Se ha establecido y controlado la prioridad de cada uno de los hilos de ejecución. 3
2h.- Se han depurado y documentado los programas desarrollados. 2