java.lang
public class ThreadLocal<T> extends Object
get()
and set()
methods)
only affects the state of the object as seen by the currently
executing Thread.
The first time a ThreadLocal object is accessed on a particular
Thread, the state for that Thread's copy of the local variable is set by
executing the method initialValue()
.
An example how you can use this:
class Connection { private static ThreadLocal owner = new ThreadLocal() { public Object initialValue() { return("nobody"); } }; ... }
Now all instances of connection can see who the owner of the currently
executing Thread is by calling owner.get()
. By default any
Thread would be associated with 'nobody'. But the Connection object could
offer a method that changes the owner associated with the Thread on
which the method was called by calling owner.put("somebody")
.
(Such an owner changing method should then be guarded by security checks.)
When a Thread is garbage collected all references to values of the ThreadLocal objects associated with that Thread are removed.
Since: 1.2
UNKNOWN: updated to 1.5
Constructor Summary | |
---|---|
ThreadLocal()
Creates a ThreadLocal object without associating any value to it yet. |
Method Summary | |
---|---|
T | get()
Gets the value associated with the ThreadLocal object for the currently
executing Thread. |
protected T | initialValue()
Called once per thread on the first invocation of get(), if set() was
not already called. |
void | remove()
Removes the value associated with the ThreadLocal object for the
currently executing Thread. |
void | set(T value)
Sets the value associated with the ThreadLocal object for the currently
executing Thread. |
initialValue()
.
Returns: the value of the variable in this thread
null
.
Often, this method is overridden to create the appropriate initial object
for the current thread's view of the ThreadLocal.
Returns: the initial value of the variable in this thread
Since: 1.5
initialValue()
from being
called if this is the first access to this ThreadLocal in this Thread.
Parameters: value the value to set this thread's view of the variable to