Cuándo y cómo usar ThreadLocal en Java para trabajar de forma segura con hilos
¡Hola a todos! Soy un desarrollador Java con aproximadamente un año de experiencia y actualmente estoy aprendiendo sobre multihilo. Me encontré con un problema: tengo un servidor web en Spring Boot que procesa solicitudes en diferentes hilos. Para cada solicitud, creo un objeto `SimpleDateFormat` para formatear fechas. Sé que `SimpleDateFormat` no es thread-safe, por lo que creo una nueva instancia dentro de cada método.
Pero esto parece ineficiente: crear un objeto cada vez y luego olvidarlo. He oído hablar de `ThreadLocal`, pero no entiendo cuándo debería usarlo. Por ejemplo, tengo este código:
```java
public class DateService {
public String formatDate(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(date);
}
}
```
Llamo a este método desde diferentes hilos y a veces obtengo resultados extraños o excepciones. He leído que se puede hacer `SimpleDateFormat` estático y envolverlo en `ThreadLocal`, pero ¿para qué sirve eso? ¿No es más simple simplemente...