源码阅读
烫手的砖
开发者
展开
-
ThreadLocal使用包括子线程传递实例
1.ThreadLocal的使用主要用于不同线程操作不安全变量时的线程保护 2.ThreadLocal=为Thread提供独有的ThreadLocalMap变量,通过Entry[] table方式存储线程本地变量 3.Thread持有ThreadLocal的引用,所以ThreadLocal需要设置成虚引用避免内存溢出,同时提供删除entry操作避免value值的内存溢出代码示例package com.myzy.auth.reetrantlock;public class TestThreadLoca原创 2022-04-06 22:44:22 · 923 阅读 · 0 评论 -
ReetrantReadWriteLock源码要点(面试必备)
**1.writeLock**只需要判断状态C是否有读锁或者写锁**2.readLock**判断是否拿到锁,有一下几点:是否有写锁是否有写锁在排队首(为了防止写锁被饿死,因为读锁一般可以获取到锁)是否达到读锁最大限制抢锁修改高16位,读锁状态,是否成功?读写锁使用同一个队列,状态C高16位记录读锁状态也是读锁个数,低16位记录写锁状态***以上是本人在学习过程中记录的东西,希望对你有用!!!!!**...原创 2022-04-04 22:49:52 · 290 阅读 · 0 评论 -
源码阅读List
源码阅读-JDK list(一)首先查看List接口的上下继承关系。查看第一个方法:1.通过其实现类来学习这个方法:实现类方法很多,首先通过常用的arrayList来学size()方法arraylist中返回的是这个size属性值在arraylist发生crud的时候会对这个值进行同步修改。**1.**add方法,调用重载的add方法,传入添加的新元素,当前数组引用,当前数组长度,然后通过grow()方法后添加元素,然后容量 size=s+1,自增。2.remove(int in原创 2021-01-31 21:59:58 · 120 阅读 · 0 评论