Junior — Middle
Podes dar um exemplo de uma situação em que o uso de ThreadLocal seja justificado?
sobes.tech IA
Resposta da IA
O ThreadLocal é utilizado quando é necessário armazenar dados específicos de cada thread, sem risco de serem acessíveis por outras threads.
Exemplo de situação: numa aplicação web em Java, onde cada pedido é processado numa thread separada, pode usar o ThreadLocal para armazenar informações sobre o utilizador atual ou o contexto do pedido, para não passar esses dados explicitamente através dos parâmetros dos métodos.
private static final ThreadLocal<UserContext> userContext = new ThreadLocal<>();
public void processRequest() {
userContext.set(new UserContext(...));
// Dentro desta thread, pode obter userContext.get() sem passar parâmetros
}
Assim, garante-se o isolamento de dados entre threads.