Avatar ·

When and how to use ThreadLocal in Java for thread-safe operations?

Hello everyone! I'm a Java developer with about a year of experience, and I'm currently learning about multithreading. I've encountered a problem: I have a Spring Boot web server that processes requests in different threads. For each request, I create a `SimpleDateFormat` object to format dates. I know that `SimpleDateFormat` is not thread-safe, so I create a new instance inside each method. But this seems inefficient — creating an object each time and then discarding it. I've heard about `ThreadLocal`, but I don't understand when it should be used. For example, I have this code: ```java public class DateService { public String formatDate(Date date) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(date); } } ``` I call this method from