java.lang
Class  InheritableThreadLocal
java.lang.Object
  |
  +--java.lang.ThreadLocal
        |
        +--java.lang.InheritableThreadLocal
- public class InheritableThreadLocal
- extends ThreadLocal
  
This class extends 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 InheritableThreadLocals 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.
 
 InheritableThreadLocal variables are used in preference to ordinary
 ThreadLocal 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.
- Since: 
 - JDK1.2
 
- See Also: 
 ThreadLocal
| 
Inner Class Summary | 
(package private)  class | 
InheritableThreadLocal.Entry
 
          The information associated with an (InheritableThreadLocal,Thread) pair. | 
 
 
 
 
| 
Method Summary | 
(package private) static void | 
bequeath(Thread parent,
         Thread child)
 
          Passes the ThreadLocal values represented by the specified list of
 Entries onto the specified child Thread. | 
protected  Object | 
childValue(Object parentValue)
 
          Computes the child's initial value for this InheritableThreadLocal
 as a function of the parent's value at the time the child Thread is
 created. | 
(package private)  ThreadLocal.Entry | 
newEntry(Object value)
 
          Overrides method in ThreadLocal and implements inheritability,
 in conjunction with the bequeath method. | 
 
 
| Methods inherited from class java.lang.Object | 
, 
clone, 
equals, 
finalize, 
getClass, 
hashCode, 
notify, 
notifyAll, 
registerNatives, 
toString, 
wait, 
wait, 
wait | 
 
InheritableThreadLocal
public InheritableThreadLocal()
- Creates an InheritableThreadLocal variable.
 
childValue
protected Object childValue(Object parentValue)
- Computes the child's initial value for this InheritableThreadLocal
 as a function of the parent's value at the time the child Thread is
 created.  This method is called from within the parent thread before
 the child is started.
 
 This method merely returns its input argument, and should be overridden
 if a different behavior is desired.
 
bequeath
static void bequeath(Thread parent,
                     Thread child)
- Passes the ThreadLocal values represented by the specified list of
 Entries onto the specified child Thread.  (The child's value is
 computed from the parent's as per the childValue method.)  This
 method is invoked (only) at Thread creation time, by Thread.init.
 
newEntry
ThreadLocal.Entry newEntry(Object value)
- Overrides method in ThreadLocal and implements inheritability,
 in conjunction with the bequeath method.
- Overrides:
 - newEntry in class ThreadLocal