公众号merlinsea
- ThreadLocal:用于存储本线程的内容,用于本线程的其他方法使用。
- 总结:
- 每个线程Thread内部都要一个ThreadLocalMap的对象
- 根据当前调用的Thread获取其内部ThreadLocalMap成员变量(这个成员变量是属于这个调用线程的)
- 根据当前ThreadLocal的hashCode值找到应该取ThreadLocalMap中的哪个值或者应该放入ThreadLocalMap哪个位置
- ThreadLocal的作用: 某个线程设置的值只能由对应这个线程的方法获取到,即起到了不同线程之间的相互隔离(这里的隔离就是因为在执行treadlocal.set的时候其实是把数据设置到当前这个线程自己的成员变量TreadlocalMap中了,这样就起到了不同线程只能访问自己设置的threadlocal值的作用),threadlocal可以用于在同一个线程的不同方法调用时候传递参数。
- Thread类中持有一个ThreadLocalMap的对象,并且这个对象只能被当前线程的方法访问,这个threadlocalMap的key是当前调用的threadlocal对象,value是我们需要存储的值。
- ThreadLocal类中的set方法
- 我们set方法的时候,会通过getMap(t)方法获取当前调用线程的TreadLocalMap对象,然后对这个map对象操作。
- ThreadLocal类中的get方法
算法训练营永久刷题班元旦优惠价,超低价格永久刷题。加入我们可以一起备战明年的春招笔试,快来参加吧~
元旦算法训练营教学福利来啦~
奔跑的小梁,公众号:梁霖编程工具库
leetcode刷题直播教学,手把手带你刷题,元旦价格优惠通知,超低价格永久刷题