1.咱们在进行表创立的时候通常会创立出一条批改人与创建人的数据,能够很不便的看出有谁批改了数据库.那这条数据要通过怎么的代码去实时实现呢,能够通过ThreadLocal技术,当咱们应用token去定义拦截器的时候,前端页面中会携带一个token数据,能够通过token数据实时的去获取以后用户的id,而后能够放入线程中,在须要应用的中央应用办法去获取.
ThreadLocal 并不是一个Thread,而是Thread的局部变量.ThreadLocal为每个线程提供独自一份存储空间,具备线程隔离的成果,只有在线程内能力获取到对应的值,线程外则不能拜访。
ThreadLocal有三个办法是咱们罕用的,别离是
public void set(T value) 设置以后线程的线程局部变量的值
public T get() 返回以后线程所对应的线程局部变量的值
public void remove() 移除以后线程的线程局部变量

2.存在内存透露问题吗?
在ThreadLocal的动态外部类ThreadLocalMap中,援用ThreadLocal的key为弱援用,而value为强援用,因而可能呈现key值被回收而value依然存在的状况,即key为null,这样的话value始终不会被回收掉,从而会造成内存透露.
怎么解决?
能够在应用完ThreadLocal后应用remove办法开释掉资源.