ThreadLocal学习

    1. ThreadLocal字面理解?
        不是"本地线程",而是Thread的局部变量;
    2. ThreadLocal如何维护变量?
       为每个使用该变量的线程提供独立的变量副本,每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。
    3. ThreadLocal是如何为每一个线程维护变量的副本?
       在ThreadLocal类中有一个Map(即ThreadLocalMap),用于存储每一个线程的变量副本,Map中元素的键为线程对象,而值对应线程的变量副本。

    4. ThreadLocal方法学习

ThreadLocal学习_第1张图片

ThreadLocal学习_第2张图片

ThreadLocal学习_第3张图片

ThreadLocal学习_第4张图片

ThreadLocal学习_第5张图片

ThreadLocal学习_第6张图片

    5. ThreadLocal与同步机制(synchronized)区别:
       相同点:都是为了解决多线程中相同变量的访问冲突问题。
       不同点:
       a.    同步机制中,通过对象的锁机制保证同一时间只有一个线程访问变量,即"以时间换空间";
       b.    ThreadLocal会为每一个线程提供一个独立的变量副本,从而隔离了多个线程对数据的访问冲突,即"以空间换时间"

你可能感兴趣的:(threadLocal)