首页 > 编程语言 > 详细

java 并发基础

时间:2019-03-25 16:52:32      阅读:125      评论:0      收藏:0      [点我收藏+]

ThreadLocal

  允许将每个线程与持有数值的对象关联在一起,提供get,set访问器,为每个使用它的线程维持一份单独的拷贝。所以,get总是返回由当前执行线程通过set设置的最新值。

  例通过ThreadLocal存储jdbc数据库连接使其成为线程安全的。

  

private static ThreadLocal<Connection> conn=new ThreadLocal<Connection>(){
        public  Connection initialValue(){
                return DriverManager.getConnection(DB_URL);
                }
    }
 public static Connection getConnection(){
    return conn.get();
}

  线程首次调用ThreadLocal.get方法时,会请求initialValue提供一个初始值。

  概念上来说,可以将ThreadLocal<T>看作map<Thread,T>,它存储了线程相关的值,不过事实上它并非这样实现的,与线程相关的值存储在线程对象自身中,线程终止后,这些值会被垃圾回收。

  

  相比全局变量,线程本地变量会降低可重用性,引入隐晦的类间耦合。

  

java 并发基础

原文:https://www.cnblogs.com/UalBlog/p/10594659.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!