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