打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
Web项目中的ThreadLocal
CevenCheng
>《系统架构》
2012.10.31
关注
Threading stories: ThreadLocal in web applications - Java Code Geeks
将所有ThreadLocal 放入一个Wrapper中,防止内存泄漏,这样在Web容器undeploy时,通过 ServletRequestListener -> requestDestroyed() 调用该类的destroy()即可销毁所有的ThreadLocal变量:
public class ThreadLocalUtil {
private final static ThreadLocal<ThreadVariables> THREAD_VARIABLES = new ThreadLocal<ThreadVariables>() {
/**
* @
see
java.lang.ThreadLocal#initialValue()
*/
@Override
protected ThreadVariables initialValue() {
return new ThreadVariables();
}
};
public static Object getThreadVariable(String name) {
return THREAD_VARIABLES.get().get(name);
}
public static Object getThreadVariable(String name, InitialValue initialValue) {
Object o = THREAD_VARIABLES.get().get(name);
if (o == null) {
THREAD_VARIABLES.get().put(name, initialValue.create());
return getThreadVariable(name);
} else {
return o;
}
}
public static void setThreadVariable(String name, Object value) {
THREAD_VARIABLES.get().put(name, value);
}
public static void destroy() {
THREAD_VARIABLES.remove();
}
}
public class ThreadVariables extends HashMap<String, Object> { }
public abstract class InitialValue {
public abstract Object create();
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
【热】
打开小程序,算一算2024你的财运
ThreadLocal的设计与使用
java中ThreadLocal类的使用
Java之ThreadLocal
赌十包辣条,你一定没见过这么通透的ThreadLocal讲解
理解ThreadLocal
研究java.lang.ThreadLocal类
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×