package com.cgm.threadlocal;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
public class MyThread {
static Map<Thread, Object> map=new HashMap<Thread, Object>();
public static Object getObj(){
Thread th=Thread.currentThread();
Object o=map.get(th);
if (o==null) {
o=new Random().nextInt(1000);
map.put(th, o); //保证每一个线程都是一个单独的值 互不干预
}
return o;
}
}
测试类
package com.cgm.threadlocal;
import org.junit.Test;
public class ThreadLoaclTest {
@Test
public void testThread(){
Object o1= MyThread.getObj();
Object o2= MyThread.getObj();
System.out.println(o1);
System.out.println(o2); //o1 o2 同一个值
Thread t=new Thread(){
public void run() {
Object o3= MyThread.getObj();
Object o4= MyThread.getObj();
System.out.println(o3);
System.out.println(o4); //o3 o4 同一个值
}
};
}
}
分享到:
相关推荐
AopLogAopLog是基于SpringAop和ThreadLocal实现的一个对请求方法埋点记录与处理的日志工具包。设计目的和场景:使用Spring Aop拦截程序,基本上都是同一个小异,不想日后每个项目都柏林都写一份这样的Aop拦截处理...
2.线程的状态转换以及基本操作 3.java内存模型以及happens-before规则 4.彻底理解synchronized 5.彻底理解volatile 6.你以为你真的了解final吗? 7.三大性质总结:原子性、可见性以及有序性 8.初识Lock与...
接下来,文章重点讲解了ConcurrentHashMap的原理和实现方式,以及ThreadLocal的原理和使用场景。 最后,文章简要概述了Spring框架的基本概念和作用,包括IOC、AOP、Bean的作用域等内容。同时,还涉及了事务处理的...
2. ThreadLocal辨析 11 3. 线程间的协作 19 4. 面试题 21 第二章 线程的并发工具类 21 一、 Fork/Join框架的介绍 21 1、实现步骤: 22 2、工作窃取算法 22 3、分而治之 23 4、Fork/Join使用的标准范式 24 5、Fork/...
基本类型的包装类(Character放在最后) String、StringBuffer、StringBuilder、StringJoiner、StringTokenizer(补充正则表达式的知识) CharacterIterator、StringCharacterIterator、CharsetProvider、...
一 基本知识 2 1.1 任务Runnable 2 1.2 线程构造器Threat 2 1.3 执行器Executor 2 1.4 任务中返回值Callable接口 3 1.5 休眠 6 1.6 让步 6 1.7 优先级 6 1.8 后台线程(daemon) 6 1.9 加入线程(join) 8 1.10 捕获...
(带有ThreadLocal变量的示例)。 线程信令。 (带有4个不同的MyWaitNotify对象的2个示例)。 锁具4.1。 基本(带有2个不同的Counter对象的示例)。 4.2。 可重入(例如2个不同的可重入对象)。 Java中的读/写锁。 ...
学生提问:使用组合关系来实现复用时,需要创建两个Animal对象,是不是意味着使用组合关系时系统开销更大? 159 5.9 初始化块 159 5.9.1 使用初始化块 160 5.9.2 初始化块和构造器 161 5.9.3 静态初始化块 162 ...
7.2.4 元数据设计的基本原则... 109 7.2.5 此“元数据”非彼 “元数据”... 109 7.3 实体元数据... 110 7.3.1 实体元数据格式... 110 7.3.2 元数据编辑器... 113 7.4 元数据引擎设计... 118 7.4.1 实体元数据运行时...
零分配散列版本概述该项目提供了一个Java API,用于对Java中的任何字节序列进行哈希处理,包括各种基本数组,缓冲区,“ CharSequence”等。 为Apache 7许可下的Java 7+编写。 与其他类似项目(例如相比,主要区别...
【线程】ThreadLocal的作用 90 【Spring】什么是IOC和DI?DI是如何实现的 91 【Spring】spring中的IOC(控制反转)的原理 92 【Spring】什么是AOP 92 【Spring】Spring事务机制 93 声明式事物 93 编程式事务 94 ...
另一个值得考虑的是多线程java.lang.ThreadLocal的实例。偷懒的做法是通过Java本身API实现单一实例,当然你也可以确保每一个线程都有自己的一个实例对象。 虽然Java没有提供一个很好的方法来管理java.util.Random的...
10.2.2 在Java SE环境下使用 Hibernate JPA实现 370 10.2.3 在Java SE环境下使用 TopLink JPA实现 374 10.2.4 在Java SE环境下使用 EntityManager 377 10.2.5 使用orm.xml管理O/R映射 379 10.3 理解实体 382 10.3.1 ...
java抢票软件源码 中高级java面试题整理 一 前端 ...解答: get和post的基本区别?说说 tcp/ip协议、三次握手、窗口滑动机制 解答: ...基本类型数据使用快速排序法,对象数组使用归并...ThreadLocal可以用来共享数据吗; Threa
9.2.5 Spring使用ThreadLocal解决线程安全问题 9.3 Spring对事务管理的支持 9.3.1 事务管理关键抽象 9.3.2 Spring的事务管理器实现类 9.3.3 事务同步管理器 9.3.4 事务传播行为 9.4 编程式的事务管理 9.5 使用XML...
9.2.5 Spring使用ThreadLocal解决线程安全问题 9.3 Spring对事务管理的支持 9.3.1 事务管理关键抽象 9.3.2 Spring的事务管理器实现类 9.3.3 事务同步管理器 9.3.4 事务传播行为 9.4 编程式的事务管理 9.5 使用XML...
ThreadLocal目标源 7.11. 定义新的Advice类型 7.12. 更多资源 8. 测试 8.1. 简介 8.2. 单元测试 8.2.1. Mock对象 8.2.2. 单元测试支持类 8.3. 集成测试 8.3.1. 概览 8.3.2. 使用哪个支持框架 8.3.3. ...
ThreadLocal目标源 7.11. 定义新的Advice类型 7.12. 更多资源 8. 测试 8.1. 简介 8.2. 单元测试 8.2.1. Mock对象 8.2.2. 单元测试支持类 8.3. 集成测试 8.3.1. 概览 8.3.2. 使用哪个支持框架 8.3.3. ...
ThreadLocal的原理? spring事务7种传播特性和隔离级别的理解? spring boot的启动过程 spring事务实现的原理 aop切面 如何解决spring循环依赖问题? Redis篇: redis持久化的原理(RDB、AOF); redis缓存穿透、...