CountDownLatch源码解析(jdk1.8)

概述

CountDownLatch是基于AQS实现的一个同步工具类。它允许一个线程一直等待,直到其他线程执行完成后再执行。CountDownLatch源码比较简单,基于AQS实现共享锁的等待 ,初始化时只需要设置一个初始值,后续针对锁的状态进行控制,最后根据锁的状态来释放等待线程即可。CountDownLatchCyclicBarrier不同,8.19是不可复用的,CountDownLatch释放等待线程后,就不能再次使用了。看此源码之前,建议先看AQS源码解析

ReentrantReadWriteLock源码解析(jdk1.8)

概述

ReentrantReadWriteLock基于AQS实现的读写锁,写锁和读锁分别使用排他锁、共享锁实现。

ReentrantLock源码解析(jdk1.8)

概述

ReentrantLock是一个基于AQS(AQS源码解析)实现的可重入的独占锁,提供了公平锁与非公平锁的获取。与synchronized关键词实现的独占锁不同,ReentrantLock锁的粒度更细、功能更加丰富、使用也更灵活。不过ReentrantLock需要手动控制锁的释放。

ConditionObject源码解析(jdk1.8)

概述

ConditionObjectAQS的内部类,是一个单向队列,提供了条件锁的同步实现。

AbstractQueuedSynchronizer源码解析(jdk1.8)

概述

AQS(AbstractQueuedSynchronizer)CLH锁为基础而设计,是并发编程中一个重要的框架类,用于构建锁和其他的同步组件。

ConcurrentHashMap源码解析(jdk1.8)

概述

ConcurrentHashMapHashMap线程安全的版本。jdk1.8以前ConcurrentHashMap采用Segment分段锁技术,Segment继承自ReentrantLock,通过对Segment加锁实现并发操作。

LinkedHashMap源码解析(jdk1.8)

概述

LinkedHashMapMap 接口的哈希表和链接列表实现,具有可预知的迭代顺序。

HashMap源码解析(jdk1.8)

概述

HashMap基于哈希算法实现,用于存储 key-value 键值对的数据结构,底层由数组+链表+红黑树(jdk_1.8新增)组成。HashMap相比于之前介绍的的ArrayListlinkedList结构要复杂得多。

LinkedList源码解析(jdk1.8)

概述

ArrayList一样,LinkedList也是List的实现类。不过ArrayList是基于数组实现的,而LinkedList是基于链表实现的。

ArrayList源码解析(jdk1.8)

概述

ArrayList是我们日常开发中比较常见的一个容器类。它底层由动态数组实现, 所以和数组一样,可以根据索引对容器对象所包含的元素,进行快速随机的查询操作 。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×