Java学习整理系列之ThreadLocal的理解
来源:互联网
(1)初始化一个ThreadLocal对象,ThreadLocal有三个成员方法 get()、set()、initialvalue()。 如果不初始化initialvalue,则initialvalue返回null。(2)session的get根据当前线程返回其对应的线程内部变量,也就是我们需要的net.sf.hibernate.Session(相当于对应每个数据库连接).多线程情况下共享数据库链接是不安全的。ThreadLocal保证了每个线程都有自己的s(数据库连接)。(3)如果是该线程初次访问,自然,s(数据库连接)会是null,接着创建一个Session,具体就是行6。 (4)创建一个数据库连接实例 s (5)保存该数据库连接s到ThreadLocal中。 (6)如果当前线程已经访问过数据库了,则从session中get()就可以获取该线程上次获取过的连接实例。(1)初始化一个ThreadLocal对象,ThreadLocal有三个成员方法 get()、set