Что такое Scoped Values в Java?

Senior
124 просмотров
AFK Offer AI

Scoped Values (preview в Java 21) — замена ThreadLocal для virtual threads. ThreadLocal проблематичен: мутабельный, не наследуется правильно в virtual threads, забывают remove(). ScopedValue — иммутабельный, с чётким временем жизни: ScopedValue.where(KEY, value).run(() -> ...). Значение доступно только внутри scope и автоматически очищается. Наследуется дочерними virtual threads. Дешевле ThreadLocal, безопаснее, и не вызывает утечек памяти.

Вернуться к списку вопросов