ThreadLocal深入研究-spring

原创 2013年12月04日 16:26:27

request作用域的Bean、事务管理、任务调度、AOP等模块共享变量的思想及源代码的实现:

// 共享数据的公共接口
interface TopInterface {
	ThreadLocal<String> threadLocal = new ThreadLocal<String>();// 三层共享的线程变量
}

class TestDao implements TopInterface {
	
	public void save(String name) {
		if(null == threadLocal.get()) 
			threadLocal.set(name);
	}
	
	public String find() {
		return threadLocal.get();
	}
}

class TestServiceImpl implements TopInterface {
	private TestDao dao = new TestDao();
	
	public void save(String name) {
		dao.save(name);
	}
	
	public String find() {
		return threadLocal.get();
	}
}

class TestActionImpl implements TopInterface {
	private TestServiceImpl service = new TestServiceImpl();
	
	public void save(String name) {
		service.save(name);
	}
	
	public String find() {
		return threadLocal.get();
	}
}


 

测试代码:

public static void main(String[] args) {
		TestActionImpl action = new TestActionImpl();
		action.save("张三");
		
		TestDao dao = new TestDao();
		System.out.println("hello : " + dao.find() + ", 这是dao层");
		
		TestServiceImpl service = new TestServiceImpl();
		System.out.println("hello : " + service.find() + ", 这是service层");
		
		System.out.println("hello : " + action.find() + ", 这是action层");
		
	}


 

输出结果:

hello : 张三, 这是dao层
hello : 张三, 这是service层
hello : 张三, 这是action层

该变量在多线程环境下是线程安全的,其起重要的还是ThreadLocal。

Spring 3 MVC深入研究

一、前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了。Spring3 MVC结构简单,应了那句话简单就是美,...
  • kobejayandy
  • kobejayandy
  • 2013年10月14日 00:12
  • 6526

深度学习的研究方向和发展趋势

一. 人工智能应用领域1. 计算机视觉    生物特征识别:人脸识别、步态识别、行人ReID、瞳孔识别;    图像处理:分类标注、以图搜图、场景分割、车辆车牌、OCR、AR;    视频分析:安防监...
  • linolzhang
  • linolzhang
  • 2017年07月07日 23:07
  • 4229

深度学习的发展历史及应用现状

深度学习是人工神经网络的一个分支,具有深度网络结构的人工神经网络是深度学习最早的网络模型。1943年,美国数学家沃尔特·皮茨(W.Pitts)和心理学家沃伦·麦克洛克(W.McCulloch)首次提出...
  • lqfarmer
  • lqfarmer
  • 2017年05月22日 10:52
  • 1829

深入研究ThreadLocal

深入研究java.lang.ThreadLocal类     一、概述   ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不...
  • long511703
  • long511703
  • 2015年07月17日 14:30
  • 317

深入研究java.lang.ThreadLocal类 [转]

转自http://lavasoft.blog.51cto.com/62575/51926 一、概述  ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是...
  • linminqin
  • linminqin
  • 2011年04月10日 11:12
  • 488

深入研究java.lang.ThreadLocal类

一、概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为T...
  • zhangshufa
  • zhangshufa
  • 2011年07月08日 15:27
  • 172

ThreadLocal深入研究

不久前我写过一篇关于ThreadLocal用法的文章,但最近项目上出现了Memory Leak,调查后发现可能与ThreadLocal的使用有关,在此对ThreadLocal的使用作一些补充。 在...
  • oyl822
  • oyl822
  • 2015年04月08日 23:54
  • 445

深入研究java.lang.ThreadLocal类,以HibernateUtil为实例

深入研究java.lang.ThreadLocal类     一、概述   ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,...
  • Baple
  • Baple
  • 2014年10月09日 08:49
  • 692

Spring3 MVC 深入研究

一、前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了。Spring3 MVC结构简单,应了那句话简单就是...
  • kofandlizi
  • kofandlizi
  • 2012年02月28日 02:32
  • 870

Spring 3 MVC深入研究

一、前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了。Spring3 MVC结构简单,应了那句话简单就是...
  • weiling_shen
  • weiling_shen
  • 2016年06月02日 16:31
  • 210
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ThreadLocal深入研究-spring
举报原因:
原因补充:

(最多只允许输入30个字)