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