ThreadLocal是Java里一种特殊的变量。每个线程都有一个ThreadLocal就是每个线程都拥有了自己独立的一个变量,竞争条件被彻底消除了。它是为创建代价高昂的对象获取线程安全的好方法,比如你可以用ThreadLocal让SimpleDateFormat变成线程安全的,因为那个类创建代价高昂且每次调用都需要创建不同的实例所以不值得在局部范围使用它,如果为每个线程提供一个自己独有的变量拷贝,将大大提高效率。首先,通过复用减少了代价高昂的对象的创建个数。其次,你在没有使用高代价的同步或者不变性的情况下获得了线程安全。
(Java并发面试题) 什么是ThreadLocal变量?
未经允许不得转载:IDEA激活码 » (Java并发面试题) 什么是ThreadLocal变量?
相关推荐
- (Java并发面试题) 什么是Java Timer 类?如何创建一个有特定时间间隔的任务?
- (Java并发面试题)CopyOnWriteArrayList可以用于什么应用场景?
- (Java并发面试题)乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
- (Java并发面试题)什么是Daemon线程?它有什么意义?
- (Java并发面试题) SynchronizedMap和ConcurrentHashMap有什么区别?
- (Java并发面试题) synchronized和ReentrantLock的区别
- (Java并发面试题) 讲一下 synchronized 关键字的底层原理
- (Java并发面试题) 什么是可重入锁(ReentrantLock)?