Hibernate中的ThreadLocal

原创 2004年11月04日 10:38:00
今天学习Hibernate,看到数据连接部分,看到一个ThreadLocal类,在网上看了这两篇文章。
http://qszhuang.blogchina.com/blog/article_20407.72483.html
http://www-900.ibm.com/developerWorks/cn/java/j-threads/index3.shtml#h5450
发现ThreadLocal是用来实现一个线程局部变量的,一个线程局部变量就是指线程的每一个实例都会拥有这个变量的一个实例,线程的各实例间不会共享这个变量,或者说这个变量对于线程的各个实例来说是独立的。这样的话,对于这样一个变量就不存在同步的问题了,但同时它也不能被给线程共享,不能用于在各线程间通讯了。
在Hibernate中,net.sf.hibernate.Session就是这样的一个变量,Servlet是会为每一个客户端建立一个线程的,那么也就是说,每有一个客户端,就会有一个net.sf.hibernate.Session的实例。而net.sf.hibernate.Session应该就是对应一个和数据库连接的会话。一个会话就是对应一个和数据库的连接(不能确定,明天再看看hibernate源码),也就是说hibernate中,每一个客户端拥有一个和数据库的连接。

Hibernate用ThreadLocal模式 (线程局部变量模式) 管理Session

(1)使用ThreadLocal模式 (线程局部变量模式) 管理Session的代码如下
  • u010870518
  • u010870518
  • 2014年10月04日 16:50
  • 1764

ThreadLocal管理和获取Hibernate的Session对象

前几天在csdn论坛里面,经常有人问到,如果不用spring,单用hibernate如何来解决延迟加载的问题. 无论是立即加载还是延迟加载必须要连接数据库的,而在java中连接数据库是依赖jav...
  • he90227
  • he90227
  • 2014年09月11日 13:59
  • 903

Java中ThreadLocal类的作用以及实现原理-----hibernate的连接池就是用ThreadLocal实现的

Why ThreadLocal? 无论如何,要编写一个多线程安全(Thread-safe)的程序是困难的,为了让线程共享资源,必须小心地对共享资源进行同步,同步带来一定的效能延迟,而另一方面,在处理同...
  • wenzhihui_2010
  • wenzhihui_2010
  • 2013年05月28日 16:50
  • 1233

使用ThreadLocal+Filter处理连接池的缺点

现在网上有很多推荐利用ServletFilter和ThreadLocal来处理数据库连接池或者是Hibernate的Session工厂,原理就是结合ThreadLocal使整个请求过程用的是同一个连接...
  • chensheng913
  • chensheng913
  • 2005年08月23日 10:09
  • 8690

Hibernate——ThreadLocal模式下管理的Session会在事务提交后自动关闭

最近对Hibernate的ThreadLocal Session模式有点兴趣。于是根据曹晓钢翻译的Hibernate Reference做了个小测验,结果发现了一个小bug。 代码很简单,都是利用...
  • qq_36295256
  • qq_36295256
  • 2017年07月16日 16:18
  • 446

关于Hibernate的threadlocal方式管理

  package jp.ne.biglobe.svpf.front.rcv.common;import org.apache.commons.logging.Log;import org.apach...
  • pengyijpu
  • pengyijpu
  • 2007年12月04日 13:32
  • 2459

Python学习之ThreadLocal

[0]:首先引出问题:我们在使用线程的时候,每个线程都使用自己的局部变量,但是,我们如果在线程内部调用某个函数的时候且需要让这个函数处理我们的变量时,就会产生一个问题,必须将该局部变量给传递进该函数....
  • pp634077956
  • pp634077956
  • 2016年03月13日 13:59
  • 4072

java 深入理解ThreadLocal

相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目的是为了解决多线程访问资源时的...
  • mccand1234
  • mccand1234
  • 2017年01月07日 13:49
  • 914

ThreadLocal的原理和在框架中的应用

我们知道Spring通过各种DAO模板类降低了开发者使用各种数据持久技术的难度。这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突。       我们使用模板类访问底...
  • u010796790
  • u010796790
  • 2016年08月13日 17:31
  • 255

事务处理中的ThreadLocal的使用

事务处理中的ThreadLocal的使用简单的理解ThreadLocal所谓ThreadLocal,简单一点想,就是一个全局的Map,Map的key是线程对象,value是你要保存的对象 进入某个线...
  • sdlg2015
  • sdlg2015
  • 2015年09月10日 20:46
  • 529
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate中的ThreadLocal
举报原因:
原因补充:

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