G.Bordel >Docencia >TAP Técnicas Actuales de Programación (curso 2010-2011)
desprotegido Intro. desprotegido Temario desprotegido Calendario desprotegido RPF desprotegido Recursos protegido Práctica protegido Gest. Alum.
tema_anterior Tema 10: Hilos tema_siguiente
  1. Introducción.
  2. Ciclo de vida de un hilo.
  3. Distribución de la CPU. Prioridades. El problema de la "inanición".
  4. Mecanismos de sincronización de hilos. El problema del interbloqueo.
  5. Agrupamientos de hilos.
  6. Estudio de un ejemplo de programación con hilos.[ejercicios]

10.5- Agrupamientos de hilos

Es habitual que en una aplicación encontremos conjuntos de hilos relacionados o incluso iguales (p.ej. en un servidor que atiende a diversos clientes, una colección de hilos idénticos pueden atender cada uno a un cliente). En estos casos puede ser preciso realizar acciones conjuntas hacia todos ellos (por ejemplo arrancarlos) de modo que Java proporciona la posibilidad de agrupar hilos mediante la clase ThreadGroup. Un objeto de clase ThreadGroup representa a un grupo de hilos y sobre este objeto pueden realizarse acciones que serán reflejadas hacia todos los hilos a que representa.

Para que un hilo pertenezca a un grupo basta con construir el objeto hilo mediante un constructor en el que se especifica el grupo al que pertenece (además de aportarle un identificador).

1-  class HiloAgrupable extends Thread{
2-   public HiloAgrupable(ThreadGroup tg, String s) { super(tg,s);}
3-  ...
4-  }
5-  
6-  public class OtraClase {
7-  ...
8-   TreadGroup hA=new ThreadGroup("HilosTipoA");
9-   TreadGroup hB=new ThreadGroup("HilosTipoB");
10-  
11-   HiloAgrupable a1=new HiloAgrupable(hA,"ElPrimeroA");
12-   HiloAgrupable a2=new HiloAgrupable(hA,"ElSegundoA");
13-   HiloAgrupable b1=new HiloAgrupable(hB,"ElPrimeroB");
14-   HiloAgrupable b2=new HiloAgrupable(hB,"ElSegundoB");
15-  
16-   hA.start();
17-   ...
18-   hB.start();
19-  ...
20-  }

Siguiente punto: 10.6- Estudio de un ejemplo de programación con hilos


Plataforma de soporte a curso y contenidos (c) German Bordel 2005.