![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 69
__程序员大魔王
这个作者很懒,什么都没留下…
展开
-
JSON反序列化泛型丢失问题
多层泛型T,Json反序列化导致泛型丢失原创 2022-07-12 17:54:24 · 1535 阅读 · 0 评论 -
阻塞队列BlockingQueue(ArrayBlockingQueue)源码分析
阻塞队列有多种实现,这里我们就先分析一下ArrayBlockingQueue,该队列获取数据、插入数据、检测数据的方式有多种,但是不同的方法会有不同的效果,比如插入数据时,如果队列已经满了,调用add方法插入会抛异常,但是是有put插入数据就会阻塞当前线程。具体的效果查看下面的图。这里我们只是重点查看阻塞的方法,put和take两个方法,看他是怎么做到阻塞的。1. 创建一个有界阻塞队列,长度为2BlockingQueue<Integer> queue = new ArrayBlockin原创 2021-05-13 11:54:22 · 103 阅读 · 0 评论 -
AQS(AbstractQueuedSynchronizer)总结
AQS是一个同步队列,它是一个抽象类,并不会单独使用,主要用途是处理多线程竞争,将未获取到锁的线程进行排队,其中除了维护一个队列之外,还有两个值比较关键,分别是: state 标记位 exclusiveOwnerThread 当前所属线程 维护队列的两个参数分别是: Node head 同步队列头节点 Node tail 同步队列未节点 维护的队列是一个双向链表,指向来上一个和下一个节点。AQS是JUC的基石,类似于CountDownLat...原创 2021-02-10 01:45:30 · 174 阅读 · 0 评论