Sobes.tech
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.