title: Class level, instance level and local ThreadLocals
body: <p>I understand how class level thread locals makes sense. Being associated with thread, we need thread locals to be shared among different instances and classes across that thread. So we need to make them class level. If we want to share thread local across different instances of same class, we can make them <code>private static</code>. If we want to share thread local across different classes, we can make them <code>public static</code>. </p>
  
  <p><strong>Q0.</strong> correct me if am wrong with above</p>
  
  <p>My doubts are about instance scoped (<code>non-static</code>) thread locals and local (defined inside some method) thread locals:</p>
  
  <p><strong>Q1.</strong> Is there any valid use case for instance scoped (<code>non-static</code>) thread locals?<br>
  <strong>Q2.</strong> Is there any valid use case for local (defined inside some method) thread locals?<br>
  <strong>Q3.</strong> Are instance scoped (<code>non-static</code>) thread locals deleted when an instance is garbage collected?<br>
  <strong>Q4.</strong> Are local (defined inside some method) thread locals deleted when method returns? </p>