线程池详解

1. 什么是线程池2. ThreadPoolExecutor源码2.1 继承关系 Executorexecute(Runnable): 用来执行传进去的任务ExecutorServicesubmit()、invokeAll()、invokeAny() 以及shutDown() 等AbstractExecutorService基本实现了ExecutorSe...

并发编程

CopyOnWriteArrayList源码解析

1. CopyOnWriteArrayList简介 在JDK1.5 之前,如果想要使用并发安全的 List 只能选择 Vector。而 Vector 是一种老旧的集合,已经被淘汰。Vector 对于增删改查等方法基本都加了 synchronized,这种方式虽然能够保证同步,但这相当于对整个 Vector 加上了一把大锁,使得每个方法执行的时候都要去获得锁,导致性能非常低下。 JDK1.5 ...

并发编程

Hashmap源码解析

1. 简介 HashMap 主要用来存放键值对 ,它基于哈希表的 Map 接口实现,是常用的 Java 集合之一,是非线程安全的。 HashMap 可以存储 null 的 key 和 value,但 null 作为键只能有一个,null 作为值可以有多个JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”...

并发编程

LinkedHashMap源码解析

1. 简介LinkedHashMap 是 Java 提供的一个集合类,它继承自 HashMap,并在 HashMap 基础上维护一条双向链表,使得具备如下特性: 支持遍历时会按照插入顺序有序进行迭代。 支持按照元素访问顺序排序,适用于封装 LRU 缓存工具。 因为内部使用双向链表维护各个节点,所以遍历时的效率和元素个数成正比,相较于和容量成正比的 HashMap 来说,迭代效率会高很多。 ...

并发编程

ConcurrentHashMap源码解析

1. ConcurrentHashMap1.71. 存储结构 Segment 数组 + HashEntry 数组 + 链表 2. 初始化方法初始化逻辑无参构造有参构造 必要参数校验。 校验并发级别 concurrencyLevel 大小,如果大于最大值,重置为最大值。无参构造默认值是 16. 寻找并发级别 concurrencyLevel 之上最近的 2 的幂次方值,作为初始化容量大小,...

并发编程

博客搭建教程

由于之前使用dosify搭建的文档博客,但是样式和主题比较单一,在发现hexo+stellar之后,觉得这款博客主题很美观很简洁,本文主要记录了将就博客迁移到本地主机的过程、在阿里云搭建hexo博客的操作步骤

博客搭建
1789

本站由 卡卡龙 使用 Stellar 1.29.1主题创建

本站访问量 次. 本文阅读量 次.