Разбираем, почему классический
ThreadLocal теряет актуальность в мире виртуальных потоков, и как ему на смену приходит
ScopedValue: контекст, привязанный к области выполнения, а не к потоку. Пошаговые примеры передачи контекста (пользователь,
REQUEST_ID), вложенные scopes и их перекрытие, интеграция с виртуальными потоками (
Executors.
newVirtualThreadPerTaskExecutor()). Обсуждаем сравнение
ThreadLocal vs
ScopedValue, практические советы, ограничения и взгляд на
Structured Concurrency (preview).