JDK源码_ThreadLocal

比较好的学习资料:

深入JDK源码之ThreadLocal类

个人理解:

ThreadLocal可以看做一个工具类:

1、让线程更容易操作保存在当前线程内部的成员变量->提供get、set、remove方法调用。

2、当线程消亡时,则该线程的成员变量堆内存可以顺利回收。

ThreadLocal1和ThreadLocal2的hashcode不一样,可以区分不同的ThreadLocal实例。

同一个ThreadLocal实例中,不同的线程的ThreadLocalMap的引用地址不一样,所以获取的ThreadLocalMap的值不一样,即线程只能取当前线程自己的ThreadLocalMap中的值。

使用:

public final class FrogHolder {

    private static ThreadLocalfrogLocal =new ThreadLocal();

    public static void set(String id) {

        frogLocal.set(id);

    }

    public static Stringget() {

        return frogLocal.get();

    }

    public static void clear() {

        frogLocal.remove();

    }
    
}


猜你喜欢

转载自blog.csdn.net/agfagafsdfas/article/details/86541771
今日推荐