01 2023 档案
摘要:第一步:项目根目录下新建lib目录,放入需要外部引入的jar包 如下图: 第二步:添加依赖,需要指定systemPath 如下: <!-- 需要添加到私服的maven依赖包,测试时暂时使用本地依赖 --> <!--<dependency> <groupId>com.icbc</groupId> <a
阅读全文
摘要:一、简介 DelayQueue是java并发包下的延时阻塞队列,常用于实现定时任务。 二、继承体系 从继承体系可以看到,DelayQueue实现了BlockingQueue,所以它是一个阻塞队列。 另外,DelayQueue还组合了一个叫做Delayed的接口,DelayQueue中存储的所有元素必
阅读全文
摘要:一、简介 PriorityBlockingQueue是java并发包下的优先级阻塞队列,它是线程安全的,如果让你来实现你会怎么实现它呢? 还记得我们前面介绍过的PriorityQueue吗?点击链接直达Java集合之PriorityQueue源码分析 二、源码分析 2.1 属性 // 默认容量为11
阅读全文
摘要:一、简介 优先级队列,是0个或多个元素的集合,集合中的每个元素都有一个权重值,每次出队都弹出优先级最大或最小的元素。 一般来说,优先级队列使用堆来实现。 二、源码分析 2.1 主要属性 // 默认容量 private static final int DEFAULT_INITIAL_CAPACITY
阅读全文
摘要:一、简介 LinkedBlockingQueue是java并发包下一个以单链表实现的阻塞队列,它是线程安全的,至于它是不是有界的,请看下面的分析。 二、源码分析 2.1 属性 // 容量 private final int capacity; // 元素数量 private final Atomic
阅读全文
摘要:一、简介 ArrayBlockingQueue是java并发包下一个以数组实现的阻塞队列,它是线程安全的,至于是否需要扩容,请看下面的分析。 二、源码分析 2.1 属性 // 使用数组存储元素 final Object[] items; // 取元素的指针 int takeIndex; // 放元素
阅读全文
摘要:一、锁的种类 在JUC中,大量使用到了锁,而Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录: 二、悲观锁与乐观锁 对于同一个数据的并发操作,悲观锁认为自己在使用数据的时候一定有别的线程
阅读全文