ThreadLocal的作用

1)保存在当前线程计算的中间结果

2)保存上下文信息,比如用户的身份等等

 

ThreadLocal的副作用

1) 信息泄露。 在服务器环境下(比如WebLogic), 线程往往被保存在线程池中。由于每个用户的请求(Request)都是通过一个线程来处理的,当线程处理完一个用户的请求之后,服务器应用程序会将该线程存放在线程池中。当下一个用户请求时,这个线程又被调度来处理请求。这种情况下,上一个用户的上下文信息(比如身份信息)将被得到。

 

2)内存泄露。

 

 

解决方法

当每个用户的请求处理完成之后,调用ThreaLocal.remove()方法将数据清除

 

参考:

http://dave.srednal.com/archives/14

相关文章:

  • 2021-12-02
  • 2021-11-15
  • 2021-06-14
  • 2022-12-23
  • 2022-12-23
  • 2021-11-09
  • 2022-12-23
猜你喜欢
  • 2021-08-17
  • 2021-12-05
  • 2021-09-19
  • 2022-02-02
  • 2021-09-22
  • 2021-06-26
  • 2021-08-08
相关资源
相似解决方案