12 2018 档案
摘要:基于jdk1.7源码 一、无锁容器 CopyOnWriteArrayList是JDK5中添加的新的容器,除此之外,还有CopyOnWriteArraySet、ConcurrentHahshMap和ConcurrentLinkedQueue等,它们都是无锁容器。 所谓无锁,就是不需要使用对象内置锁(s
阅读全文
摘要:说明:本文基于jdk1.7源码 LinkedList 是一个双向链表,它也可以被当作栈、队列(Queue)或双端队列(Deque)进行操作。LinkedList随机访问效率低,但随机插入和删除效率高。 LinkedList是基于链表实现的,链表中节点定义如下。 Node 每个节点由prev指针,ne
阅读全文
摘要:Vector与ArrayList底层实现基本类似,底层都是用数组实现的,最大的不同是Vector是线程安全的。ArrayList源码分析请参考ArrayList源码分析 一、源码分析 基于jdk1.7源码 属性 Vector多了一个capacityIncrement属性。当Vector需要扩容时,增
阅读全文
摘要:基于jdk1.7源码 一、源码分析 属性 ①DEFAULT_CAPACITY:默认初始容量为10。 ②EMPTY_ELEMENTDATA:表示空数组, Arraylist在刚创建时通常是一个空数组,不含任何元素,如果一次创建了 ③elementData:是用来缓存元素的数组,该属性被声明为trans
阅读全文
摘要:内置锁是jvm内部支持的,使用时不需要显示的加锁和释放锁,因此内置锁也被称为隐式锁。而重入锁使用时需要显式的加锁和释放锁,因此属于显式锁。 一、重入锁概述 重入锁是JDK1.5引入的,作为一种线程同步机制,其作用与内置锁相同,但并不是用来替代内置锁的。但它提供了一些内置锁不具备的特性。在java中使
阅读全文
摘要:下面是我画的线程池的原理图。 一、属性 public class ThreadPoolExecutor extends AbstractExecutorService { //控制标识,32位(拆分为高3位和低29位) private final AtomicInteger ctl = new At
阅读全文
摘要:官方安装文档: https://docs.docker.com/docker-for-windows/install/ https://docs.docker.com/docker-for-windows/ 关于windows容器的几点注意点: Windows Container 和 Docker:
阅读全文