线程—ThreadLocal
来源:互联网 发布:工程类软件 编辑:程序博客网 时间:2024/06/06 05:44
通过ThreadLocal.set()将这个新创建的对象的引用保存到各线程的自己的一个map中,每个线程都有这样一个map,执行ThreadLocal.get()时,各线程从自己的map中取出放进去的对象,因此取出来的是各自自己线程中的对象.
public static Session getsSession() throws HibernateException
{
Session session=(Session) threadLocal.get();
if(session==null||!session.isOpen())
{
if(sessionFactory==null)
{
rebuildSessionFactory();
}
// 通过SessionFactory对象创建Session对象
session=(sessionFactory!=null)?sessionFactory.openSession():null;
// 将Session对象保存到线程局部变量threadLocal中
threadLocal.set(session);
}
return session;
}
不是什么对象的拷贝或副本(谁胡说霸道的,害人不浅,,,),此方法中session本身为局部变量是线程安全的,放到threadlocal中是为了,同一线程中共享这个变量。
0 0
- 线程—ThreadLocal
- Android线程—ThreadLocal
- 【线程】 ThreadLocal
- servlet线程安全问题——ThreadLocal模式
- 线程本地存储—ThreadLocal,map实现
- java线程访问ThreadLocal——线程间共享冲突
- ThreadLocal---线程本地变量
- 线程局部变量ThreadLocal
- 线程(ThreadLocal)
- ThreadLocal 线程局部变量
- ThreadLocal 线程变量
- ThreadLocal本地线程
- ThreadLocal---线程本地变量
- Java线程之ThreadLocal
- 线程安全---ThreadLocal
- ThreadLocal 与线程池
- java线程之ThreadLocal
- 线程局部变量ThreadLocal
- SpringMVC对静态资源的处理
- 字符串匹配——正则表达式
- Linux - Command : scp
- Mysql之聚合函数
- 移动标签TabLayout的使用
- 线程—ThreadLocal
- 1054. 求平均值 (20) PAT乙级&&1108. Finding Average (20)PAT甲级
- POJ 1014 Dividing 已被翻译
- Mycat 基于MySQL master-slave 读写分离验证
- C++操作oracle数据库
- 顺序串基本操作
- 洛谷 1319_压缩技术_模拟
- 比较器:Comparable和Comparator
- shadowsocks and pac