????????????????get????
public T get() {
Thread t = Thread.currentThread();//1.????????????
ThreadLocalMap map = getMap(t);//2.???????map????
if (map != null) {//3.???map????????threadlocal????key????????Entry??????Entry??????????ɡ?
ThreadLocalMap.Entry e = map.getEntry(this);
if (e != null)
return (T)e.value;
}
return setInitialValue();//???map?????????????е???set???get????????ù?set?????????remove?????????趨????
}
????setInitialValue
1  private T setInitialValue() {
2         T value = initialValue();//???????
3         Thread t = Thread.currentThread();
4         ThreadLocalMap map = getMap(t);
5         if (map != null)
6             map.set(this?? value);
7         else
8             createMap(t?? value);
9         return value;
10     }
????initialValue???????????null???????????protected??????????д??
????1 protected T initialValue() {
????2         return null;
????3     }
????????????????????????ThreadLocal????????????????????????????
???????????????
??????????????????????????????ThreadLocal??????????????????????????????????????????????????????????????????“???????”???????????????????????????????????????????ThreadLocal??????????????????????????ThreadLocal??????????????????????????“???????”??????????????????????μ? ??е????????+???е????????????????????????????“?????????”???????????????????????????????????????????κε??????????????????κ????
?????????????????????ν????????????????????????????????????????????????????е?????????乲????????????£??????????漰???????????????????????????????????????????????ThreadLocal???????????????
??????????費(fèi)????????????????????????????????????ó???????????????????????????????????????????“????”????????????????????????????????????web?????е?servlet??servlet??????????????????????????????????servlet???????????CGI????У?N????????N????????????????????????????

????ThreadLocal??spring??????????????Hibernate??session???????г??????web?????У??????????????????? HttpSession??web???????????????????????????????????????ThreadLocal?????????????????????????session????????????tomcat??Щweb????????????????????????????????????????????ν?????????????????set???????????????remove??