`
mabusyao
  • 浏览: 247688 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Always clean the ThreadLocal variables.

 
阅读更多

Any variable stored in ThreadLocal are per thread as we knew, but most people does know that even the thread has been expeired or dead, it's copy of the variable in ThreadLocal won't disappear.

 

I read the STRUTS 2 code recently, figured out that you should always manually cleanup the variables in ThreadLocal when your thread is about to close. 

 

In below code, ThreadLocal variables in dispatcher and ActionContext will be cleaned up:

 

    public void destroy() {
        if (dispatcher == null) {
            log.warn("something is seriously wrong, Dispatcher is not initialized (null) ");
        } else {
            try {
                dispatcher.cleanup();
            } finally {
                ActionContext.setContext(null);
            }
        }
    }
 Just write this done in case forgot in future.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics