合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
## 概述 此类的作用是为每一个线程,提供一个独立存储数据的空间. ## 底层 ThreadLocal类实际上内部封装了一个Map集合.这个Map集合泛型是这个样的Map<Thread,Object>. ## 两个方法 1. get() : 获取值,从类内部的Map中获取值,它是以当前线程对象作为键,从map中取值. 内部源码: map.get(Thread.currentThread()). 2. set(Object obj) :设置值,保存到类内部的 map集合中,它以当前线程对象作为键,保存到map中. 内部源码: map.set(Thread.currentThread()) ## 实例 注意,该值只能在当前线程中获取到,无法在其他线程中获取到. ThreadLocal能保证,哪个线程保存的数据由那个线程取出,别的线程无法取出. ~~~ ThreadLocal<String> t1 = new ThreadLocal<>(); //设置值,不用设置键,它的键是当前线程对象 t1.set("jack"); //获取值 System.out.println(t1.get()); ~~~