1Z0-831 Java 25 Virtual Threads and Structured Concurrency Guide
April 20, 2026
Study 1Z0-831 Java 25 Virtual Threads and Structured Concurrency: key concepts, common traps, and exam decision cues.
On this page
Modern Java concurrency questions are not just about synchronized anymore. But the old rule still applies: if you cannot explain visibility and lifecycle, your answer is weak.
Concurrency-choice map
If the stem is mainly about…
Better first instinct
many blocking tasks
virtual-thread suitability may matter
bounded family of related tasks
structured concurrency model may matter
contextual value sharing across tasks
scoped value boundary may matter
memory visibility or race risk
happens-before and synchronization still matter first
What the exam is really testing
If the code shows…
Strong reading
Thread.ofVirtual() style thinking
virtual-thread lane is under test
StructuredTaskScope
preview structured concurrency lane is under test
ScopedValue
bounded context-sharing lane is under test
shared mutable state
older concurrency rules still dominate the answer
Common traps
Trap
Better rule
assuming new concurrency APIs remove the need for visibility reasoning
happens-before still matters
treating scoped values like plain thread locals
the model and lifecycle are different
forgetting preview status
feature status can be part of the right answer
Decision order that usually wins
Decide whether the question is about concurrency model, visibility, or feature status.
Mark structured concurrency as preview and scoped values as permanent in Java 25.
Keep virtual threads separate from structured concurrency; they are related but not the same thing.
Only then reason about task lifecycle, interruption, or result aggregation.