另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,这个对象的创建并不是通过ThreadLocal.set()来实现的,set()并不会做什么对象的拷贝,而是每个线程之前已经创建好的对象。通 过ThreadLocal.set()将这个新创建的对象的引用以当前线程为key,保存TheadLocal的一个map中,执行 ThreadLocal.get()时,各线程从map中取出以当前线程为key的对象,因此取出来的是各自自己线程中的对象。
下面来看看ThreadLocal的实现原理(jdk1.5源码)
Powered by: BlogJava Copyright © semovy