java基础
文章平均质量分 61
GasDuck
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[redis数据结构]跳表的实现
跳表的实现,对面试很重要吧原创 2022-07-02 17:14:00 · 189 阅读 · 1 评论 -
ThreadLocal源码解读
new 在new ThreadLocal的时候,采用了斐波那锲散列法生成对应的hash使得hash值分布的更加平均 private static int nextHashCode() { return nextHashCode.getAndAdd(HASH_INCREMENT); } set public void set(T value) { //从本线程拿到ThreadLocalMap Thread t = Thread.currentThread(); ThreadLocalMa原创 2022-03-12 09:04:49 · 181 阅读 · 0 评论 -
Semaphore和countDownLatch完全解析
Semaphore和countDownLatch差不多,都涉及到共享锁,也涉及到PROPAGATE,所以一起讲,至于ReentrantReadWriteLock以及CyclicBarrier,这个之后再说,如果不了解aqs请查看之前的博文 Semaphore Semaphore semaphore = new Semaphore(2); //设置state值 semaphore.acquire(); semaphore.release(); 初始化的时候设置一个值,如果线程acquire数量超过了这个值,原创 2022-03-12 09:03:56 · 512 阅读 · 0 评论 -
AQS解析(以ReentrantLock公平锁为例)
AQS解析以ReentrantLock公平锁为例 AQS中进程节点的状态 线程的2种等待模式: SHARED:表示线程以共享的模式等待锁(如ReadLock) EXCLUSIVE:表示线程以互斥的模式等待锁(如ReentrantLock),互斥就是一把锁只能由一个线程持有,不能同时存在多个线程使用同一个锁 线程在队列中的状态枚举: CANCELLED:值为1,表示线程的获锁请求已经“取消” SIGNAL:值为-1,表示该线程一切都准备好了,就等待锁空闲出来给我(比如现在头节点的值为-1,那么说明头节点原创 2022-03-12 09:00:40 · 293 阅读 · 0 评论 -
红黑树完全解析(基于TreeMap)
红黑树的例子 在线例子网址 https://www.cs.usfca.edu/~galles/visualization/RedBlack.html 内部节点及类定义 Get/Set方法省略 static class RBNode<K extends Comparable<K>, V> { private RBNode parent; private RBNode left; private RBNode right; private boolean color;原创 2022-03-09 12:16:33 · 523 阅读 · 0 评论
分享