J.U.C 学习
_等风来
等风来不如追风去
展开
-
J.U.C 学习【一】AbstractQueuedSynchronizer队列实现和API简介
一、简介 AbstractQueuedSynchronizer 是一个队列同步器,可以用来构建锁或者其他同步组件,如 ReentrantLock 等, 它使用一个 int 的成员变量 state 来表示同步状态,通过内置的 FIFO 队列来完成线程想要获取资源时的排队工作。二、队列的实现 队列是使用双向链表来实现的,而链表的节点则是使用一个内部类 Node 的来实现的,下面来看看 ...原创 2018-06-17 15:16:17 · 151 阅读 · 0 评论 -
J.U.C 学习【二】AbstractQueuedSynchronizer独占模式和示例
文章中的源码据来自jdk1.8 前言 上一篇 Java并发学习【一】AbstractQueuedSynchronizer队列实现和API简介 的文章中介绍了 AQS 的 API 和队列节点Node的源码,接下来两篇分别介绍 AQS 的独占模式和共享模式,先来看看独占模式。 独占模式:是指当一个线程获取到了锁,其他线程则无法获取...原创 2018-06-17 15:18:24 · 175 阅读 · 0 评论 -
J.U.C 学习【三】AbstractQueuedSynchronizer共享模式和示例
1原创 2018-06-18 01:02:02 · 205 阅读 · 0 评论 -
J.U.C 学习【四】重入锁 -- ReentrantLock
文章中的源码均来自JDK1.8 1. 前言 ReentrantLock, 顾名思义就是支持重进入的锁,也就是说一个线程可以对资源重复加锁。除了支持重进入外,ReetrantLock还支持公平锁和非公平锁。 2. 重进入分析 在J.U.C 学习【二】AbstractQueuedSynchronizer独占模式和示例中的示例(ExclusiveLock), 如果这个示...原创 2018-06-18 16:08:50 · 263 阅读 · 0 评论 -
J.U.C 学习【五】读写锁 -- ReentrantReadWriteLock
一、示例 1. 基于 ReentrantLock 实现简单缓存 public class Cache1 { private static final Map<String, Object> map = new HashMap<String, Object>(); private static ReentrantLock lock...原创 2018-07-30 00:15:35 · 131 阅读 · 0 评论 -
J.U.C 学习【六】等待和唤醒 -- Condition
目录 简介 Condition 解析 1. Condition 对象的获取 2. Condition 的属性 3. 等待 4. 通知 总结 简介 Condition 是一个接口,它提供了类似 Object 的监视器方法,如 wait(), notify() 等等,与 Lock 配合实现等待与通知的模式,但是这两种的使用方式以及它们的功能特性还是有差异的,下面通过对...原创 2018-07-31 00:25:14 · 196 阅读 · 0 评论