Al crear Threads de esta manera :
for(int i=0;i<3;i++)
{
ClaseX objetoX=new ClaseX();
Thread th = new Thread (objetoX);
th.start();
}
Tomarán nombres automáticos numerados
Thread-0
Thread-1
Thread-2
Así nombrados no indican de qué clase de implementación de threads se trata, ni ayudan para identificarlos en debugging.
Otra opción es ponerles el nombre de la clase:
for(int i=0;i<3;i++)
{
ClaseX objetoX=new ClaseX();
Thread th = new Thread (objetoX, getClass().getSimpleName());
th.start();
}
Con la desventaja de que todos tendrían el mismo nombre:
ClaseX
ClaseX
ClaseX
Usando ambas cosas a la vez
for(int i=0;i<3;i++)
{
ClaseX objetoX=new ClaseX();
Thread th = new Thread (objetoX);
th.setName(getClass().getSimpleName() + " " + th.getName());
th.start();
}
Ahora sí.
ClaseX Thread-0
ClaseX Thread-1
ClaseX Thread-2
Otra manera posible es nombrarlos con la clase más la fecha y hora de creación,
en lugar usar un nombre numerado, etc...
Usar un buen nombre de thread además de ser útil en debugging,
puede servir para saber a qué Clase pertenece el método que está invocando
a una implementación de una interfaz, sin necesidad de utilizar argumentos.