Java编程中的ThreadLocal

java.lang.ThreadLocal类

它是线程的局部变量

  • 每一个使用ThreadLocal变量的线程,都会持有其一个副本。线程间的副本不会冲突

  • 每个线程都保持一个对其线程局部变量副本(ThreadLocal对象)的隐式引用

  • 通过ThreadLocal存取的数据,总是与当前线程相关,从而为多线程环境提供了一种隔离机制

  • 实现的思路很简单,在ThreadLocal类中有一个Map,用于存储每一个线程的变量的副本

  • 应用场景

      private static final ThreadLocal<Connection> local = new ThreadLocal<Connection>();//获得线程局部变量对象
      		
      private static Connection getConnection(){			
      	Connection con = null;
      	try {
      		con = local.get(); //从线程缓冲区中取数据库连接对象
      		if(con == null){
      	 		Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
      			String url = “jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=messageBorder”;
      			String user = “sa”;
      			String password = “admin”;
      			con = DriverManager.getConnection(url, user, password);
      			local.set(con);//把创建好的数据库连接对象放入线程缓冲区
      		}
      	} catch (SQLException e) {
      		e.printStackTrace();
      	}
      	return con;				 
      }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值