ThreadLocal:
*
ThreadLocal
Best used for objects which depend on internals during invoking a call, but are stateless otherwise, like SimpleDateFormat, Marshaller
For Random ThreadLocal usage, consider using ThreadLocalRandom