ThreadLocal 类的理解

来源:互联网 发布:林心如慈善不捐款知乎 编辑:程序博客网 时间:2024/05/22 13:51


ThreadLocal 对象通常用于防止对可变的实例变量或全局变量进行共享。

例如: 在单线程中可以维持一个全局的数据库的连接,并在程序启动时初始化。避免每一个方法都要传递一个connection 对象。

由于JDBC 的连接对象不一定是线程安全的,因此当多线程在没有协同的情况下使用全局变量时,就不是线程安全的,可以通过将JDBC 的连接保存到ThreadLocal 对象中,每一

个线程都要有自己的连接。


例如下面 demo:


private static ThreadLocal<Connection> connection=new ThreadLocal<Connection>(){

public Connection initValue(){

returnDriverManager.getConnection(url;)

}

};


public staticConnection getConnection() {

return connectionHolder.get();

}


原创粉丝点击