When and how should I use a ThreadLocal variable? When and how should I use a ThreadLocal variable? multithreading multithreading