Java ThreadLocal

Each thread holds an implicit reference to its copy of a thread-local variable
as long as the thread is alive and the ThreadLocal instance is accessible;
after a thread goes away, all of its copies of thread-local instances are subject 
to garbage collection (unless other references to these copies exist).

참조