深度剖析 AQS 设计原理,内容相当硬核!AQS 是一个提供了原子式管理同步状态、阻塞和唤醒线程功能的框架,是除了 Java 自带的synchronized关键字之外的锁实现机制。可以这么说,AQS是JUC包下线程同步类的基石,也是很多面试官喜欢提问的话题,掌握AQS原理对我们深入理解线程同步技术有着非常重要的意义。panzhi2021年6月18日大约 22 分钟java多线程
【并发编程】常用原子操作技术详解相比通过synchronized和lock等方式实现的线程安全同步操作,原子类的实现机制则完全不同。它采用的是通过无锁(lock-free)的方式来实现线程安全(thread-safe)访问,底层原理主要基于CAS操作来实现。panzhi2021年6月17日大约 14 分钟java多线程
【并发编程】常用线程同步技术详解在前几篇文章中,我们讲到了线程池实现原理、阻塞队列技术等核心组件,其实 JDK 给开发者还提供了比 synchronized 更加高级的线程同步组件,比如 CountDownLatch、CyclicBarrier、Semaphore、Exchanger 等并发工具类。下面我们一起来了解一下这些常用的并发工具类!panzhi2021年6月16日大约 11 分钟java多线程
一文带你彻底弄懂线程池设计机制虽然 Java 对线程的创建、中断、等待、通知、销毁、同步等功能提供了很多的支持,但是从操作系统角度来说,频繁的创建线程和销毁线程,其实是需要大量的时间和资源的。合理利用线程池技术,对程序运行效率可以起到事半功倍的效果。panzhi2021年6月15日大约 22 分钟java多线程
浅析线程与线程组之间的关系在之前的多线程系列文章中,我们陆陆续续的介绍了Thread线程类相关的知识和用法,其实在Thread类上还有一层ThreadGroup类,也就是线程组。今天我们就一起来简单的聊聊线程组相关的知识和用法。panzhi2021年6月14日大约 7 分钟java多线程
阻塞队列 BlockingQueue 用法详解在 Java 的并发包里面还有一个非常重要的接口:BlockingQueue。BlockingQueue是一个基于阻塞机制实现的线程安全的队列。通过它也可以实现生产者和消费者模型,并且效率更高、安全可靠,相比之前介绍的生产者和消费者模型,它可以同时实现生产者和消费者并行运行。panzhi2021年6月13日大约 17 分钟java多线程
一文吃透生产者和消费者模型在并发编程中,有一个非常重要的设计模式,它就是:生产者和消费者模型。这种模型可以充分发挥 cpu 的多线程特性,通过一些平衡手段能有效的提升系统整体处理数据的速度,减轻系统负载,提高程序的效率和稳定性,同时实现模块之间的解耦。panzhi2021年6月12日大约 9 分钟java多线程
超高并发读写锁 StampedLock 用法详解为了进一步的提升程序并发执行效率,Java 8 引入了一个新的读写锁:StampedLock。与ReadWriteLock相比,StampedLock 并发效率更高。panzhi2021年6月11日大约 8 分钟java多线程
读写锁 ReadWriteLock 用法详解在 JDK 中有一个读写锁ReadWriteLock,它允许多个线程同时读,可以显著提升程序并发读的执行效率,下面我们一起来看看它的基本用法!panzhi2021年6月10日大约 6 分钟java多线程
可重入锁 ReentrantLock 常用方法详解在上一篇文章中,我们介绍了ReentrantLock类的一些基本用法,今天我们重点来介绍一下ReentrantLock其它的常用方法,以便对ReentrantLock类的使用有更深入的理解。panzhi2021年6月9日大约 12 分钟java多线程