是什么?
Thread是java中的一个类,它让每个线程都有属于自己的变量副本,从而避免的线程安全问题。
使用方法?
ThreadLocal的使用通过set来设置当前线程的变量值,get来获取即可。
原理?
ThreadLocal是通过threadLocalMap来实现的,当我们调用threadLocal的set方法时,实际是通过threadLocalMap来存储键值对,其中键是当前ThreadLocal对象,值是我们设置的变量值。调用get方法时就是通过键来获取值。
优缺点?
优点:
1.每个线程都有自己的变量副本,避免线程安全问题;
2.易用
缺点:
1.如果没有及时清理变量副本,可能会导致内存泄漏
2.ThreadLocal的使用会导致上下文切换的开销增加。