Java ThreadLocal estática?
Estableciendo un valor en Thread Local:
//Class A holds the static ThreadLocal variable.
Class A{
public static ThreadLocal<X> myThreadLocal = new ThreadLocal<X>();
....
}
//A Class B method sets value in A's static ThreadLocal variable
class B{
{
public void someBmethod(){
X x = new X();
A.myThreadLocal.set(x);
}
}
//Class C retrieves the value set in A's Thread Local variable.
Class C {
public void someCMethod(){
X x = A.myThreadLocal.get();
}
...
}
Quesiton:
Ahora asumiendo que esta es una aplicación web, y los hilos ejecutan: B.someBMethod, C.someCMethod en ese orden.
Varios subprocesos ejecutando el método B de B, terminarán actualizando elMISMO La variable estática ThreadLocal de A myThreadLocal, superando así el propósito de la variable ThreadLocal. (El uso de estática para ThreadLocal es lo que se recomienda según la documentación).
Es posible que el C de algunos métodos de C, al recuperar el valor de ThreadLocal, no obtenga el valor establecido por el subproceso "actual".
que me estoy perdiendo aqui?