一、简介
ThreadLocal提供线程局部变量。这些变量与正常的变量不同,因为每一个线程在访问ThreadLocal实例的时候《通过其getiset方法)都有自己的、独立初始化的变量副本。ThreadLocal实例通常是类中的私有静态字段,使用它的目的是希望将状态《例如,用户lID或事务ID)与线程关联起来。
主要的方法如下:
二、案例小demo
class Hourse{
//工作中不推荐
// ThreadLocal<Integer> saleValue = new ThreadLocal(){
// @Override
// protected Integer initialValue() {
// return 0;
// }
// };
ThreadLocal<Integer> saleValue = ThreadLocal.withInitial(() -> 0);
public void saleByThreadLocal(){
saleValue.set(saleValue.get()+1);
}
}
public class Test{
//统计五个销售员各自的销售业绩
public static void main(String[] args) {
Hourse hourse = new Hourse();
for (int i=0;i<5;i