主要作用
多线程问题主要是多个线程共享一个对象导致的,我们不让他共享就行了,每个线程保存一份自己的对象,自己玩自己的对象,就不会出现线程问题了。
ThreadLocal这个作用就是让线程自己独立保存一份自己的变量副本。每个线程都独立使用自己的变量副本。这样就不会影响别的线程。
ThreadLocal是解决多线程问题的一个重要思路。
有个非常关键的内部类ThreadLocalMap
,这个类是实现线程隔离的一个关键,ThreadLocalMap
类似于Map
,但是不是Map
,是key
,value
组成的一个 Entry
数组,它的key就是ThreadLocal
它本身的一个弱引用。
注意事项:在引用之后,调用一下ThreadLocal的remove方法就不会出现内存泄漏的方法了。