Acabo de enterarme acerca de ThreadLocal esta mañana. He leído que siempre debe ser final y estática como:Confundido sobre ThreadLocal
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
(Session es una sesión de Hibernate)
Mi confusión es la siguiente: Debido a que es estática, está disponible para cualquier tema en la JVM. Sin embargo, ¿almacenará información local para cada hilo que acceda a ella? Estoy tratando de entender esto, así que me disculpo si esto no está claro. Cada subproceso de la aplicación tiene acceso al mismo objeto ThreadLocal, pero el objeto ThreadLocal almacenará los objetos locales en cada subproceso.
Tenga cuidado con el uso de esto en aplicaciones web implementadas en un entorno compartido. El hilo local se filtrará en todos los contextos y después de su desinstalación las referencias en el hilo local no serán basura. Debe eliminar los datos después de cada solicitud de forma manual. – jontro
Es aparentemente contradictorio. Se supone que 'ThreadLocal' es único en cada hilo, pero los objetos estáticos se comparten entre cada hilo. Estaba a punto de hacer la misma pregunta. – aliteralmind