Capítulo 5. Valores com escopo
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
Aquele que não coloca as coisas em seus devidos lugares cometeu injustiça.
Ali ibn Abi Talib (que Deus esteja satisfeito com ele)
Neste capítulo, exploraremos o site ScopedValue, uma poderosa adição ao Java que foi finalizada no JDK 25. Ele oferece uma maneira estruturada de vincular valores a um escopo específico e, ao mesmo tempo, permanecer acessível e consistente com o contexto. Ao contrário das variáveis ThreadLocal tradicionais, que podem ser complicadas e propensas a vazamentos de memória, isso oferece uma abordagem mais limpa e eficiente ao lidar com aplicativos multithread. Neste capítulo, examinaremos por que o ScopedValue é um substituto melhor para o ThreadLocal e sua API e, em seguida, apresentaremos casos de uso práticos.
Vamos começar.
O ônus de passar o contexto
Há frequentemente cenários em que precisamos compartilhar dados entre várias partes do código em que simplesmente usar argumentos de métodos não é viável. Isso é especialmente comum quando nosso aplicativo depende de uma estrutura. Para ilustrar a ideia, vamos considerar um exemplo.
Imagine uma estrutura de agendamento de tarefas na qual o código do usuário registra as tarefas que a estrutura executará. Sempre que a estrutura executa um trabalho, ela cria um objeto JobContext que contém metadados, como o nome do trabalho, a prioridade e as restrições ...