摘要: ReentrantLock 我们已经通过前几章学会了 synchronized 和 AQS 等相关只是。下面我们继续来学习 ReentrantLock 这个并发工具类,如果你已经了解了 AQS 的机制,那么你学习 ReentrantLock 将会非常轻松。 背景 Synchronized 关键字虽然 阅读全文
posted @ 2020-01-08 18:58 当年明月123 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 我们前面几张提到过,JUC 这个包里面的工具类的底层就是使用 CAS 和 volatile 来保证线程安全的,整个 JUC 包里面的类都是基于它们构建的。今天我们介绍一个非常重要的同步器,这个类是 JDK 在 CAS 和 volatile 的基础上为我们提供的一个同步工具类。 背景 Abstract 阅读全文
posted @ 2020-01-08 17:57 当年明月123 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 除了 Synchronized 关键字,Java 还提供了一个更加轻量级的实现 volatile,在上一章介绍 CAS 时我们也说过,volatile 能够保证多线程环境下的可见性与防止指令重排序带来的问题。 先从硬件说起 前面文章已经介绍了硬件结构与 JMM 这里我们自回顾以下。 因为内存读写的速 阅读全文
posted @ 2020-01-08 17:18 当年明月123 阅读(197) 评论(0) 推荐(0) 编辑