![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码分析
橙子水的味道
这个作者很懒,什么都没留下…
展开
-
ReentrantReadWriteLock源码解析
构造函数 public ReentrantReadWriteLock(boolean fair) { sync = fair ? new FairSync() : new NonfairSync(); readerLock = new ReadLock(this); writerLock = new WriteLock(this); }构造函数fair参数用来判断是否为公平加锁,同时函数中定义了两个对象分别为读写和写锁,在使用过程中我们都是原创 2020-05-25 12:25:03 · 199 阅读 · 0 评论 -
ReentrantLock和AbstractQueuedSynchronizer源码分析二:条件队列
先来段使用@Test public void testReentrantLockCondition(){ ReentrantLock reentrantLock=new ReentrantLock(); Condition condition=reentrantLock.newCondition(); new Thread(new Runnable() { @Override public void r原创 2020-05-22 16:41:55 · 123 阅读 · 0 评论 -
HashMap数据模型及源码解析
HashMap数据结构及源码解析HashMap数据结构JDK7以前hashmap结构是使用数组和链表组合的一个数据结构,在JDK8增加了一个新特性,当链表的长度大于8的时候会转化为红黑树(增加这种特性的优势很明显,双向链表的结构如果Hash冲突很严重的话,会导致链表的长度一直增长这样大大减慢了查询的数据,也有红黑树的劣势,在插入和删除需要进行旋转变色增加了时间和空间复杂度)。**hashmap 构造函数 **public HashMap() {this.loadFactor = DEFAULT原创 2020-05-12 17:31:01 · 328 阅读 · 0 评论 -
ReentrantLock和AbstractQueuedSynchronizer源码分析一
构造函数 public ReentrantLock(boolean fair) { sync = fair ? new FairSync() : new NonfairSync(); } public ReentrantLock() { sync = new NonfairSync(); }ReentrantLock显示锁能找到的构造函数也就这两个了,默认的无参构造函数是代表建立一个非公平锁,有参数的构造函数可以显示指定公平锁(直接入队列排原创 2020-05-21 17:06:34 · 128 阅读 · 0 评论 -
ArrayBlockingQueue阻塞队列源码分析
先写一段这个阻塞队列的例子吧public static void main(String[] args) throws Exception{ BlockingQueue<String> a=new ArrayBlockingQueue(1000); Thread t1=new Thread(new Runnable() { @Override public void run() {原创 2020-05-22 14:56:20 · 136 阅读 · 0 评论