JDK源码分析
文章平均质量分 95
凶狠的士兵76
我爱学习,学习爱我
展开
-
从AbstractQueuedSynchronizer到ReentrantLock中独占锁、公平锁、非公平锁源码分析
1. 整体介绍 AbstractQueuedSynchronizer这个类可以理解为是一个同步器,ReentrantLock、ReentrantReadWriteLock都是基于它来实现锁的获取、释放,和synchronized关键字不同的是,AbstractQueuedSynchronizer直接在代码层面实现了锁机制。 2. AbstractQueuedSynchronizer分析 2....原创 2019-01-06 17:51:23 · 366 阅读 · 4 评论 -
AbstractQueuedSynchronizer中条件(Condition)等待(await)、通知唤醒(signal)实现的源码分析
1. 概述 在AbstractQueuedSynchronizer中,有两个FIFO队列,一个是同步队列,用来排队申请同步状态,还有一个是条件等待队列,当调用了await()系列的方法后,就会在等待队列尾部插入一个节点,通知唤醒的时候会把这个节点从等待队列转移到同步队列。 本文主要描述条件等待队列以及等待、通知机制的实现,关于同步队列的相关操作和实现分析,可以在这篇博客了解。 2. 分析 ...原创 2019-01-07 18:31:19 · 1085 阅读 · 0 评论 -
阻塞队列之PriorityBlockingQueue实现算法详解
1. 简介 PriorityBlockingQueue阻塞队列可以进行排序,并且可以自行传入比较器进行排序。举个例子,比如我们往这个队列中先后存放了5、10、1、3这4个int值,存放完之后,我们进行取的操作,首先会取到的是1,然后依次是3、5、10,将会按照顺序取出;再比如我们存放的是User对象,我们还可以让User实现Comparable接口,按照我们自定义的排序规则进行依次取出。 本文...原创 2019-01-14 00:04:12 · 607 阅读 · 0 评论