侧边栏壁纸
博主头像
惊羽博主等级

hi ,我是惊羽,前生物学逃兵,现系统工程沉迷者 . 贝壳签约工程师 , 曾被雇佣为 联拓数科 · 支付研发工程师 、京东 · 京东数科 · 研发工程师、中国移动 · 雄安产业研究院 · 业务中台技术负责人 .

  • 累计撰写 101 篇文章
  • 累计创建 14 个标签
  • 累计收到 14 条评论

jdk(2) - ThreadLocal

惊羽
2021-06-18 / 0 评论 / 0 点赞 / 273 阅读 / 1,588 字
温馨提示:
本文为原创作品,感谢您喜欢~

1. ThreadLocal

原因及优化

引用链 : currentThread ++> threadLocalMap <Key,Value> --> ThreadLocal
一旦 ThreadLocal 不被强引用,就会被清除;相应的 Key也无法命中 (因为key是ThreadLocal的实例) ,导致 value无法清除;
优化 : 将ThreadLocal作为static常量,这时候 所有线程共享同一个Key
引用链 : main Thread (应用主进程) ++>  ThreadLocal 
currentThread (web 请求进程) ++> threadLocalMap <Key,Value> --> ThreadLocal
Key永远不会被清除,想删就能删value.

java 四种引用

直接引用 User user = new User();   
softRefer (软引用): User  softUser = user;  user = null;  System.gc();  // 可能根据不同gc策略决定 softUser 是否为null;
weakRefer(弱引用) : WeakReference<People> reference = new WeakReference<People>(new People("zhouqian",20));  System.gc();  // reference变为null了

2. 收集器

四个阶段 , STW在哪阶段

初始标记   STW
并发标记
最终标记   STW
清除

G1 CMS 对比

CMS 劣势 : 用的复制有碎片 STW 时间长 优势 : 吞吐量大
G1 劣势 :  吞吐量小,内存占用大  优势 : 局部整理 STW 时间短

GC root 有哪些

常量 ,栈(方法栈,JVM栈)引用的堆中内容

STW 怎么实现

safepoint 标志位

3. redis 重哈希(渐进式哈希)

字典表 dict 引用 h[0] (老的Hashtable) 和 h[1] (新的Hashtable),并有一个字段 rehashIndex 
每次第一次访问 h[0] 的元素,顺带会将该元素 复制一份到 h[1],同时rehashIndex ++
直到rehashIndex == h[0].length,说明rehash结束了,  rehashIndex 被置为 -1;

4. 杂项

mysql 隔离级别

linux 查询关键字日志 不区分大小写 ,前后2行

字节码加载过程

https://blog.csdn.net/qq_20610631/article/details/82709187

5. k8s

有哪些资源

deployment  发定义 发布,补偿 资源
pod 定义 算力,存储 资源
service 定义 网络发现 资源
... 

k8s master node 组件分布

master : apiserver ,etcd 等
node : kube-proxy(监听 etcd中service的变化,底层劫持iptables实现局部DNS ) 
           kubelet(监听etcd 中deployment变化,随时调用docker操作pod)
           pod,container ... ...
0
广告 广告

评论区