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的人用的,管理堆外内存,虚引用被回收会放到一个队列
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了