public class InheritableThreadLocal<T> extends ThreadLocal<T>
ThreadLocal
to provide inheritance of values
from parent thread to child thread: when a child thread is created, the
child receives initial values for all inheritable thread-local variables
for which the parent has values. Normally the child's values will be
identical to the parent's; however, the child's value can be made an
arbitrary function of the parent's by overriding the childValue
method in this class.
Inheritable thread-local variables are used in preference to ordinary thread-local variables when the per-thread-attribute being maintained in the variable (e.g., User ID, Transaction ID) must be automatically transmitted to any child threads that are created.
Note: During the creation of a new thread
, it is
possible to opt out of receiving initial values for inheritable
thread-local variables.
ThreadLocal
Constructor and Description |
---|
InheritableThreadLocal() |
Modifier and Type | Method and Description |
---|---|
protected T |
childValue(T parentValue)
Computes the child's initial value for this inheritable thread-local
variable as a function of the parent's value at the time the child
thread is created.
|
get, initialValue, remove, set, withInitial
protected T childValue(T parentValue)
This method merely returns its input argument, and should be overridden if a different behavior is desired.
parentValue
- the parent thread's value Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2016, Oracle and/or its affiliates. All rights reserved.
DRAFT 9-internal+0-2016-01-26-133437.ivan.openjdk9onspinwait