博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThreadLocal的使用
阅读量:5107 次
发布时间:2019-06-13

本文共 1376 字,大约阅读时间需要 4 分钟。

1 /** 2  * ThreadLocal
是Thread的一个属性,它是一个threadlocalmap类型。在一个线程刚开始执行的时候,通过ThreadLocal的set方法将值放在threadlocalmap中,在后面的类的方法中,可以获得map中的值 3 * 常用的用法就是在一个web项目中,通过拦截器先获取请求用户的信息,将其放入SeissonStore(存放user的ThreadLocal), 4 * 然后执行后面的业务代码时,不需要再将user对象作为参数传入 5 * 直接调用get方法就能获取user 6 * 7 * @Attention :因为threadlocal的set方法使将this(本身)放入threadlocalmap中作为key的,所以使用SessionStore的话只能使用单例模式,可以自己实现,或者用spring的方法,getBean,他是默认返回单列的 8 * @author chenq 9 * 2016-7-15 上午10:48:3710 */11 public class StringStoreTest {12 public static void main(String[] args) {13 StringStore.get().setString("chenq");14 new AnotherClass().print();15 }16 }
1 public class StringStore { 2      3     private final ThreadLocal
store = new ThreadLocal
(); 4 5 public void setString(String str) { 6 store.set(str); 7 } 8 public String getString() { 9 return store.get();10 }11 12 private StringStore() {};13 14 private static StringStore ss = null;15 16 public static StringStore get() {17 if (ss == null) {18 ss = new StringStore();19 }20 return ss;21 }22 }
1 public class AnotherClass {2     3     public void print() {4         System.out.println(StringStore.get().getString());5     }6     7 }

 

转载于:https://www.cnblogs.com/blog-cq/p/5672912.html

你可能感兴趣的文章
STM32单片机使用注意事项
查看>>
swing入门教程
查看>>
好莱坞十大导演排名及其代表作,你看过多少?
查看>>
Loj #139
查看>>
StringBuffer是字符串缓冲区
查看>>
hihocoder1187 Divisors
查看>>
Azure 托管镜像和非托管镜像对比
查看>>
js window.open 参数设置
查看>>
032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
查看>>
Ubuntu下安装MySQL及简单操作
查看>>
前端监控
查看>>
clipboard.js使用方法
查看>>
移动开发平台-应用之星app制作教程
查看>>
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
查看>>
伪类与超链接
查看>>
centos 7 redis-4.0.11 主从
查看>>
博弈论 从懵逼到入门 详解
查看>>
永远的动漫,梦想在,就有远方
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
慵懒中长大的人,只会挨生活留下的耳光
查看>>