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- | } |
|