net.sf.ehcache.util.lang
Class VicariousThreadLocal<T>
java.lang.Object
  
java.lang.ThreadLocal<T>
      
net.sf.ehcache.util.lang.VicariousThreadLocal<T>
public class VicariousThreadLocal<T>
- extends ThreadLocal<T>
 
A drop-in replacement ThreadLocal implementation that does not leak
 when thread-local values reference the ThreadLocal object.
 The code is optimised to cope with frequently changing values.
 
 In comparison to plain ThreadLocal, this implementation:
 - from the point of view of a single thread,
 each thread-local
 {code #get} requires access to four objects instead of two
 
 - is fractionally slower in terms of CPU cycles for {code #get}
 
 - uses around twice the memory for each thead-local value
 
 - uses around four times the memory for each 
ThreadLocal
  - may release thread-local values for garbage collection more promptly
 
 
 
| 
Method Summary | 
 T | 
get()
 
            | 
 void | 
poll()
 
          Check if any strong references need should be removed due to thread exit. | 
 void | 
remove()
 
            | 
 void | 
set(T value)
 
            | 
 
 
| Methods inherited from class java.lang.Object | 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
 
VicariousThreadLocal
public VicariousThreadLocal()
- Creates a new 
VicariousThreadLocal.
 
get
public T get()
- Overrides:
 get in class ThreadLocal<T>
 
 
set
public void set(T value)
- Overrides:
 set in class ThreadLocal<T>
 
 
remove
public void remove()
- Overrides:
 remove in class ThreadLocal<T>
 
 
poll
public void poll()
- Check if any strong references need should be removed due to thread exit.
 
 
Copyright 2001-2014, Terracotta, Inc.