Avatar ·

Quando e como usar ThreadLocal em Java para trabalho seguro com threads?

Olá a todos! Sou desenvolvedor Java com cerca de um ano de experiência e estou estudando multithreading. Encontrei um problema: tenho um servidor web em Spring Boot que processa requisições em diferentes threads. Para cada requisição, crio um objeto `SimpleDateFormat` para formatar datas. Sei que `SimpleDateFormat` não é thread-safe, então crio uma nova instância dentro de cada método. Mas isso parece ineficiente — criar um objeto toda vez e depois descartá-lo. Ouvi falar sobre `ThreadLocal`, mas não entendo quando devo usá-lo. Por exemplo, tenho este código: ```java public class DateService { public String formatDate(Date date) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(date); } } ``` Chamo este método a partir de