怎么理解Condition 2026年03月30日 daichangya 16 怎么理解 Condition在 java.util.concurrent 包中,Condition 和 ReentrantLock 是两个非常特殊的工具类。使用过的人都知道,ReentrantLock(重入锁)是 JDK 并发包提供的一种独占锁实现。它基... 阅读全文 0 评论
Java多线程编程的常见陷阱 2026年03月30日 daichangya 14 1. 在构造函数中启动线程开发中常见的一种错误做法是在构造函数中启动线程,示例如下:public class A { public A() { this.x = 1; this.y = 2; th... 阅读全文 0 评论
JAVA并发编程学习笔记之AQS源码分析 2026年03月30日 daichangya 12 同步状态AQS(AbstractQueuedSynchronizer)基于 CLH 队列变体实现,该队列由若干结点构成。如前所述,结点中包含一个与线程状态密切相关的状态位 waitStatus。这是一个 32 位的整型常量,其取值定义如下:static ... 阅读全文 0 评论
非阻塞算法在并发容器中的实现 2026年03月30日 daichangya 12 简介非阻塞算法在更细粒度的层面协调争用,相比传统的锁机制具有更高的并发性。随着非阻塞算法在 Java 中的应用越来越广泛,java.util.concurrent 包中基于非阻塞算法实现的并发容器也越来越多,ConcurrentLinkedQueue 就... 阅读全文 0 评论
线程池的介绍及简单实现 2026年03月30日 daichangya 11 线程池的技术背景在面向对象编程中,创建和销毁对象是非常耗时的操作,因为创建对象需要获取内存资源或其他系统资源。在 Java 中尤为如此,虚拟机需要跟踪每一个对象,以便在对象销毁后进行垃圾回收。因此,提高服务程序效率的重要手段之一,就是尽可能减少创建和销毁... 阅读全文 0 评论