随笔16 ThreadLocal类

① ThreadLocal类:

 

② ThreadLocal类的作用:

  • ThreadLocal类为每一个线程都维护了自己独有的变量拷贝。每个线程都拥有了自己独立的一个变量。所以ThreadLocal重要作用并不在于多线程间的数据共享,而是数据的独立。Synchronized用于线程间的数据共享,而ThreadLocal则用于线程间的数据隔离
  • 由于每个线程在访问该变量时,读取和修改的,都是自己独有的那一份变量拷贝,不会被其他线程访问, 变量被彻底封闭在每个访问的线程中。
  • ThreadLocal中定义了一个哈希表用于为每个线程都提供一个变量的副本:
     1  static class ThreadLocalMap {
     2         static class Entry extends WeakReference<ThreadLocal> {
     3             /** The value associated with this ThreadLocal. */
     4             Object value;
     5             Entry(ThreadLocal k, Object v) {
     6                 super(k);
     7                 value = v;
     8             }
     9         }
    10         /**
    11          * The table, resized as necessary.
    12          * table.length MUST always be a power of two.
    13          */
    14         private Entry[] table;
    15 }

转载于:https://www.cnblogs.com/lyr612556/p/7819985.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值