AQS源码浅读
- state作用
用volatile修饰的int类型,看子类怎么实现,ReentrantLock里代表重入次数
- VarHandle
1.普通属性的原子操作 2.比反射块,直接操纵二进制码
- ThreadLocal的set,get方法
每个线程独有一份。
ThreadLocalMap getMap(Thread t) {
return t.threadLocals;
}
public void set(T value) {
Thread t = Thread.currentThread();
ThreadLocalMap map = getMap(t);
if (map != null)
map.set(this, value);
else
createMap(t, value);
}
public T get() {
Thread t = Thread.currentThread();
ThreadLocalMap map = getMap(t);
if (map != null) {
ThreadLocalMap.Entry e = map.getEntry(this);
if (e != null) {
@SuppressWarnings("unchecked")
T result = (T)e.value;
return result;
}
}
return setInitialValue();
}

- java的四种引用
强:普通的引用,永远不会回收
软:内存不够用时回收
弱(ThreadLocal):只要垃圾回收就会被干掉,一般用在容器,强引用消失就不用管了,WeakHashMap
虚:给写JVM的人用的,管理堆外内存,虚引用被回收会放到一个队列

浙公网安备 33010602011771号