PSP02.- Programación multihilo.

Icono de iDevice Orientaciones para el alumnado

En esta segunda unidad de trabajo del módulo, verás los conceptos relacionados con la programación multihilo, así cómo las clases y librerías o bibliotecas que permiten trabajar con hilos en Java.

También verás como sincronizar y comunicar hilos que comparten recursos, utilizando la clase java.lang.Object y clases del paquete java.util.concurrent.

Por último verás otras utilidades de concurrencia incluidas en el paquete java.util.concurrent y la importancia de documentar y depurar las aplicaciones multihilo.

Datos generales de la Unidad de Trabajo
Nombre completo del MP Programación de servicos y procesos. Siglas MP PSP
y título de la UT 02.- Programación multihilo.
Índice o tabla de contenidos

La unidad de trabajo contiene los siguientes bloques de contenidos:

  1. Introducción.
  2. Conceptos sobre hilos.
    1. Recursos compartidos por los hilos.
    2. Ventajas y uso de hilos.
  3. Multihilo en Java. Librerías y clases.
    1. Utilidades de concurrencia del paquete java.lang.
    2. Utilidades de concurrencia del paquete java.util.concurrent.
  4. Creación de hilos.
    1. Creación de hilos extendiendo la clase Thread.
    2. Creación de hilos mediante la interfaz Runnable.
  5. Estados de un hilo.
    1. Iniciar un hilo.
    2. Detener temporalmente un hilo.
    3. Finalizar un hilo.
    4. Ejemplo. Dormir un hilo con sleep.
  6. Gestión y planificación de hilos.
    1. Prioridad de hilos.
    2. Hilos egoístas y programación expulsora.
  7. Sincronización y comunicación de hilos.
    1. Información compartida entre hilos.
    2. Monitores. Métodos synchronized.
    3. Monitores. Segmentos de código synchronized.
    4. Comunicación entre hilos con métodos de java.lang.Object.
    5. El problema del interbloqueo (deadlock).
    6. La clase Semaphore.
    7. La clase Exchanger.
    8. Las clase CountDownLatch.
    9. La clase CyclicBarrier.
  8. Aplicaciones multihilo.
    1. Otras utilidades de concurrencia.
    2. La interfaz Executor y los pools de hilos.
    3. Gestión de excepciones.
    4. Depuración y documentación.
Objetivos
  • Desarrollar aplicaciones compuestas por varios hilos de ejecución analizando y aplicando librerías específicas del lenguaje de programación.
  • Conocer la programación multihilo en Java.
  • Aplicar las características de la sincronización y la comunicación entre hilos en entornos de desarrollo Java.
Temporalización
(estimación)
Tiempo necesario para estudiar los contenidos (h) 21
Tiempo necesario para completar la tarea (h) 4
Tiempo necesario para completar el examen (h) 1
de días que se recomienda dedicar a esta unidad 26
La temporalización anterior no deja de ser una estimación media, ya que el tiempo a invertir va a depender mucho de las circunstancias personales de cada cual.
Consejos y recomendaciones

Te ofrecemos una serie de pautas que pueden ayudarte y facilitar la tarea de aprendizaje:

  • Es muy importante que entiendas bien los conceptos de la unidad, básicos para este módulo.
  • Para ello es conveniente que dispongas de Internet para consultar dudas.
  • Organízate, elaborando un calendario y planificando un horario de estudio para evitar la acumulación de tareas.
  • Haz una primera lectura de los contenidos del tema y continúa con una lectura detallada de cada apartado realizando los ejercicios de autoevaluación y anotando todas las dudas para consultarlas con tu tutora o tutor.
  • Para completar conocimientos puedes consultar los enlaces que encontrarás bajo el epígrafe "Para Saber Más..."
  • Recuerda que con este tipo de enseñanza tienes flexibilidad de horario y tú marcas el ritmo de estudio que más te interese, aunque te aconsejamos que te ajustes al calendario de aparición de las unidades didácticas y participes activamente en los foros de las respectivas unidades.
  • En la medida de tus posibilidades reserva un tiempo semanal para el estudio y procura respetarlo, la constancia y el esfuerzo son la clave del éxito en este tipo de enseñanzas.
  • Realiza las prácticas que están relacionadas con los contenidos que se vayan abordando. Ten en cuenta que en este tipo de formación a distancia tú eres quien tiene que determinar las prácticas que debes realizar.
  • Realiza la tarea correspondiente a la unidad, pero primero lee atentamente el enunciado y asegúrate de haber entendido lo que has de hacer. Envíasela a tu tutor o tutora a través del sistema establecido en la plataforma.
  • Haz el examen on-line de la unidad.
  • Internet es un gran recurso y una gran fuente de información, pero es recomendable contrastar las informaciones con fuentes fiables.
  • No dudes en comentarle a tu tutor o tutora cualquier duda que te pueda surgir.