【2022-03-05】
1、ThreadLocal是如何做到线程隔离的,原理是什么
(个人理解)ThreadLocal实际上是依靠Thead类做到线程隔离的,简单的理解就是每一个线程都会对应一个Thread对象,ThreadlLocal的set方法最终会把数据存储到对应的Thread对象中,get方法获取数据时也会从对应的Thread对象中获取,因为Thread对象是不同的,所以也就做到了线程隔离。具体的,Thread类有一个属性ThreadLocal.ThreadLocalMap threadLocals = null;,ThreadLocalMap是类似一种map的结构,map的key就是一个ThreadLocal对象,value就是我们要存的数据,map结构也好理解,因为在实际应用中,一个线程可能会创建多个ThreadLocal对象来存储不同的值,这就要保证Thread对象的threadLocals属性可以把这些值都存储起来,所以类似map的结构就可以做到这些。
2、可重入锁的原理是什么,为啥可重入
3、redis主从复制过程原理是什么
4、redis分布式锁是如何实现的,redis value不可变的方法是什么



