StudyToCert

All certifications / OCP Java / Lessons

Oracle Certified Professional: Java SE Developer 1Z0-831 (Java SE 25) · Domain 8: Managing concurrent code execution

Scoped values (Java 25): ScopedValue.where(...).run(...) as an alternative to ThreadLocal

▶ Watch the overview video

Last reviewed September 25, 2026 · Leer en español

Applications often need to pass contextual data, such as the current user or a request ID, down through many method calls without adding a parameter to every method. The traditional tool is ThreadLocal, a variable with a separate value per thread. It has drawbacks: any code can call set at any time, so data flow is hard to follow; values live until explicitly removed, which leaks data and memory in thread pools; and child threads that inherit values must copy them. With huge numbers of virtual threads these costs grow.

Free account

Keep reading for free

Create a free StudyToCert account to read the rest of this lesson: 5 more sections, 5 key terms, a real-world example, an exam tip and self-check questions. Every lesson, lab and practice test is free with an account.

Sign up free Log in

Study OCP Java for free
A week-by-week plan with every lesson, quizzes, checkpoint tests, a practice exam and hands-on labs.
Open the OCP Java study plan