A ThreadContext provides a means of binding and unbinding objects to the current thread based on key/value pairs. <p/> <p>An internal {@link java.util.HashMap} is used to maintain the key/value pairs for each thread.</p> <p/> <p>If the desired behavior is to ensure that bound data is not shared across threads in a pooled or reusable threaded environment, the application (or more likely a framework) must bind and remove any necessary values at the beginning and end of stack execution, respectively (i.e. individually explicitly or all via the <tt>clear</tt> method).</p>