本文共 583 字,大约阅读时间需要 1 分钟。
ThreadLocal:依附在线程上的变量的媒介。在每一个Thread类中都有一个ThreadLocalMap的实例,源码中是这样体现的 /* ThreadLocal values pertaining to this thread. This map is maintained * by the ThreadLocal class. */ ThreadLocal.ThreadLocalMap threadLocals = null; ThreadLocalMap是以ThreadLocal对象为键,任意对象为值的Map.通过ThreadLocal类中的 get,set,initialValue方法可以获取,设置,初始化:依靠ThreadLocal类作为媒介依附在线程上的任意对象。
一个对象功能的施展需要依赖于一个线程:如唯一标示一个线程,用来调试并发执行的程序哪个线程出现了问题;或者用来追踪多线程环境下每一个线程的执行轨迹。在数据库中,一个事务可能会重复的拿同一个锁,以及维护自身的SavePoint,以便回滚的时候使用到。实际上一个事务就对应着一个线程,通过ThreaLocald把事务的实现类依附在线程上,这样就方便处理锁的缓存,事务回滚,日志记录等问题了。
用ThreadLocal实现CLH锁的时候用到
转载地址:http://yfgdx.baihongyu.com/