Tenemos una aplicación Java que procesa las solicitudes. Naturalmente, hay un grupo de hilos con hilos nombrados con algunos nombres insignificantes como "procesador-1", "procesador-2", etc. Nos preguntamos si es una buena idea cambiar el nombre del hilo de procesamiento cada vez que se solicita un nombre. eso indicaría qué solicitud se está procesando.¿Es una buena idea cambiar dinámicamente los nombres de los subprocesos de procesamiento en Java?
Tengo la sensación de que algo anda mal, pero no puedo pensar en una buena razón. Puedo recordar varios casos de análisis de problemas de subprocesos múltiples de volcados de hebras y fue muy importante para mí saber si veo el mismo hilo en dos vuelcos consecutivos o no. Sin embargo, me doy cuenta de que podría mirar el ID del hilo en su lugar. En log4j logs es una práctica común para escribir el nombre del hilo y recuerdo muchos casos de filtrado por él. Pero aún no estoy seguro de tener una buena "línea de defensa" aquí.
¿Cuál es la práctica más común? ¿Es una buena idea seguir cambiando el nombre de los hilos?
Hay preguntas relacionadas como Renaming Threads in Java o Should threads in Java be named for easier debugging? pero no resuelven este problema específico.
Thread.getId es realmente bueno. Cambie el nombre de los hilos como mejor le parezca, la información es únicamente para la depuración y es solo un campo 'char [] name' en la clase Thread. – bestsss
para la depuración está bien; de lo contrario, no – MeBigFatGuy
@MeBigFatGuy, aparte de los nombres de los subprocesos de depuración/creación de perfiles no sirve para nada (y no se usan internamente) – bestsss