This week's book giveaway is in the General Computing forum. We're giving away four copies of Arduino in Action and have Martin Evans, Joshua Noble, and Jordan Hochenbaum on-line! See this thread for details.
Without using ThreadLocal, each instances of a class is shared among all the threads being provisioned and can easily create some thread issues if that class is not designed as thread safe.
With using ThreadLocal, each thread will create its own instance of that class and isolate that instance from other threads.
When to use:
It is a great utility to use when trying to solve thread issues.
My 2 cents.