![](https://img-blog.csdnimg.cn/20190927235154253.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
----Java源码阅读
文章平均质量分 81
syrdbt
这个作者很懒,什么都没留下…
展开
-
Reactor 网络模型、Java代码实例
在 I/O 多路复用的场景下,当有数据处于就绪状态后,需要一个事件分发器(Event Dispather),它负责将读写事件分发给对应的读写事件处理器(Event Handler)。原创 2024-06-15 15:43:13 · 861 阅读 · 2 评论 -
Java8 ConcurrentHashMap 存储、扩容源码阅读
ConcurrentHashMap 是线程安全且高效的 HashMap。原创 2024-05-12 22:58:14 · 824 阅读 · 0 评论 -
ReentrantLock源码阅读
lock锁, 基于AQS, 实现公平锁、非公平锁AQS可以阅读我这篇文章: 点击传送实现了Lock接口:2. 源码阅读2.1 属性2.2 构造函数构造函数:2.3 Sync队列同步器2.3.1 非公平尝试获取同步状态 nonfairTryAcquirestate为0● 直接CAS 尝试获取同步状态, compareAndSetState(0, acquires)● 成功设置当前线程占有锁 setExclusiveOwnerThread(current);当前线程已经获取锁:● sta原创 2024-04-14 20:35:20 · 390 阅读 · 0 评论 -
ThreadLocal核心源码阅读
ThreadLocal为每个使用该变量的线程提供独立的变量副本,因此每一个线程都可以独立地改变自己的副本,而不会影响其他线程所对应的副本。原创 2024-04-06 23:28:19 · 186 阅读 · 0 评论 -
AbstractQueuedSynchronizer 独占式源码阅读
*** 同步队列的头,懒惰地初始化。只能通过方法setHead修改* 注:如果Head存在,则保证其waitStatus不会已取消。*//*** 尾节点,enq 加入*//*** 同步状态*//*** 获取状态*//*** 设置状态*//*** CAS 设置状态*//***/原创 2024-03-23 17:50:29 · 819 阅读 · 0 评论 -
Java线程池ThreadPoolExecutor源码阅读
线程池先判断核心线程池是否已经已满,即工作线程数是否大于核心线程数,如果不是则创建核心工作线程执行该任务,否则下一步判断工作队列是否已经满了,如果队列没有满,则将该任务入队,否则进入下一步判断线程池中的线程是否已经满了,即是否大于最大线程数,如果不是则创建工作线程执行该任务,否则拒绝这个任务。原创 2024-03-10 18:54:27 · 880 阅读 · 0 评论 -
ArrayBlockingQueue 数组阻塞队列 源码阅读
数组阻塞队列。原创 2024-03-03 16:42:28 · 386 阅读 · 1 评论 -
Java8 HashSet 源码阅读
1. 概述HashSet 保证元素不重复的集合,查询元素、新增元素、删除元素的时间复杂度均为 O(1)。HashSet 底层的数据结构为 HashMap,HashMap 中存储的键值对,key 为 Set 集合中的元素,value 统一使用一个静态常量;private transient HashMap<E,Object> map;private static final ...原创 2020-02-03 21:59:59 · 225 阅读 · 0 评论 -
Java8 原子类 AtomicInteger 源码阅读
AtomicInteger 是用CAS(CompreAndSwap,乐观锁) 构造的一个原子类。1.CASCAS(Compare and Swap)比较并替换,CAS是实现乐观锁的一个重要操作。CAS 是一个硬件指令,保证是原子操作,Java 中通过 UnSafe 来实现。详细可一下我的这篇博文:传送。CAS的基本步骤:执行函数 CAS(V,E,N),如果V值等于E...原创 2019-07-28 18:11:53 · 694 阅读 · 0 评论 -
Java8 HashMap 源码阅读
1.概述HashMap 基于哈希表实现,通过 key 查找 对应的 value ,时间复杂度为 O(1),即常数阶;HashMap 的底层数据结构为 数组 + 链表/红黑树;数组的长度为n,下图中的数组长度为4,n 为4,键值对放入那个桶的计算方法为(n - 1) &key.hash。2.静态常量(1)数组的默认容量:16,必须是2的n次幂;容量指...原创 2019-07-28 13:37:36 · 277 阅读 · 0 评论