title: Can Java's Threadlocal be applied to a non-static field, if yes, how?
body: <p>ThreadLocal ensures a field is global and local to a thread. (Global because it is available to all methods in the thread and local because it is confined to that thread's stack alone.)</p>
  
  <p>This made little sense to me as each thread's stack is confined to that thread alone. So it is already 'threadlocal', right ?</p>
  
  <p>Why then do we need ThreadLocal ? - On further reading, I confirmed my assumption from various sites (a majority of which fail to provide these facts or contradict each other) that this is indeed applicable for <strong>static fields</strong>. 
  Which does make sense.  </p>
  
  <p>So my question is, is there ever a multi-threading scenario where ThreadLocal can/needs to be applied to non-static fields ? (I came across some sites that say 'ThreadLocal' is "<em>mainly</em>" used for static fields; even <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/ThreadLocal.html" rel="noreferrer">https://docs.oracle.com/javase/7/docs/api/java/lang/ThreadLocal.html</a> uses the word "<em>typically</em>")</p>