作用
threadlocal可以在指定线程内存储数据,数据存储以后,只有指定线程可以得到存储数据,即threadlocal类型的变量对于每一个线程是互相独立的,通过get和set方法就可以得到当前线程对应的值;
可能存在的问题
Tomcat基于线程池与线程复用来提供高性能服务的,那么这里有几个关键词:线程、线程复用、ThreadLocal;
本来ThreadLocal就是基于线程来提供功能的,结果这个线程运行完了线程A之后,再去直接运行线程B,这可能导致线程B能访问到线程A留下的数据;
解决方法
当线程结束的时候,在finally代码块中调用ThreadLocal实例的remove()方法来清除本线程的数据;