Essviv

Dare to be different


  • 首页

  • 归档

java集合学习之接口1

发表于 2016-12-20 |
java集合学习之接口1java集合框架的内容包括四个部分, 分别为接口,实现, 聚合操作和算法. 本章只详述接口部分的内容。 接口: 接口可从宏观上分为两类, 分别为map和collection, collection又可细分为set, list, queue, deque.在理解接口的时候,可以 ...
阅读全文 »

java集合学习之List的实现3

发表于 2016-12-20 |
java集合学习之List的实现3在Java集合框架中,对于List接口的实现主要有两种, ArrayList和LinkedList. 前者底层是基于数组的实现,后者底层是基于双向链表的实现. ArrayList底层是通过Object[]数组来存储数据, 从arrayList的add方法可以看到,当 ...
阅读全文 »

java集合学习之通用接口2

发表于 2016-12-20 |
java集合学习之通用接口2Collection接口collection接口定义了通用的集合操作,简单说来,可以分为: 增加操作: add, addAll, 往集合中增加相应类型的元素或者把另一个集合中的元素全部加到当前集合中 删除操作: remove, removeAll, clear, 删 ...
阅读全文 »

ReentrantReadWriteLock源码分析

发表于 2016-12-16 |
ReentrantReadWriteLock源码分析在之前的源码分析 中,ReentrantLock展示了排它锁的实现,而CountDownLatch和Semaphore则展示了共享锁的实现,接下来,我们要一起看看ReentrantReadWriteLock(RRWL)的源码,它同时实现了独占锁和共 ...
阅读全文 »

LockSupport与Condition的使用

发表于 2016-12-16 |
LockSupport与Condition的使用LockSupportLockSupport提供了线程阻塞与唤醒的原语操作(primitive),它是JUC的锁机制的基础.每一个使用LockSupport的线程都有一个许可,在该许可可用的情况下,调用park操作会占用该许可,并直接返回, 否则将阻塞 ...
阅读全文 »

CountDownLatch, Semaphore, CyclicBarrier源码解析

发表于 2016-12-15 |
CountDownLatch, Semaphore, CyclicBarrier源码解析java并发包下提供了AQS框架,使得锁的实现变得非常容易. 之前我们分析了ReentrantLock的源码(这里),我们知道这个是可重入的、公平性可选的独占锁. 简单回忆一下,在线程尝试获取锁对象时,RL底层会 ...
阅读全文 »

AQS框架源码解析

发表于 2016-12-14 |
AQS框架源码解析AQS类的全称是AbstractQueuedSynchronizer, 它的核心是通过维护一个名为state的整型变量和CLH队列(这里), 子类通过修改状态变量的值来实现获取锁和释放锁的操作. AQS可以说是整个JUC并发包中的核心类,它是典型的模板模式应用(这里), 同时,它也 ...
阅读全文 »

CopyOnWriteList和CopyOnWriteSet

发表于 2016-12-14 |
CopyOnWriteList和CopyOnWriteSetCOWSet的底层是通过COWList实现的, 在写操作的时候,有选择性的选择addIfAbsent版本的操作. COWList的底层实现是通过ReentrantLock来实现的,所有的写操作执行前都必须先获取到相应的RL锁,然后再进行操作 ...
阅读全文 »

CountDownLatch, CyclicBarrier和Semaphore的使用

发表于 2016-12-12 |
CountDownLatch, CyclicBarrier和Semaphore的使用1. CountDownLatch实现类似于“计数器”一样的功能, 一般用于某个线程等待其它一些线程完成特定工作后开启后续工作时使用. 它最重要的方法是设置计数,计数减1, 等待计数结束, 分别对应于CountDow ...
阅读全文 »

模板模式

发表于 2016-12-08 |
模板模式
阅读全文 »
1…345…15
Essviv

Essviv

145 日志
27 标签
GitHub
© 2017 Essviv
由 Hexo 强力驱动
主题 - NexT.Mist