2023-09-27
虚拟机与并发
0

在多线程编程中,线程安全的数据结构是保障程序稳定性的关键组件。Java 提供了多种线程安全的集合类,其中 ConcurrentHashMap 是最常用且性能优越的线程安全哈希表实现。本文将深入探讨 ConcurrentHashMap 的设计原理、内部结构、使用场景以及最佳实践。

2023-09-21
虚拟机与并发
0

我们都知道在高并发下 ArrayList 是线程不安全的,那如果要使用集合要如何处理呢?接下来即将深入探讨Java并发容器中的 CopyOnWriteArrayList。见名知义,包含 Array 的底层还是通过数组实现的,这种特别适合读多写少的并发环境,接下来我们去深入了解下 CopyOnWriteArrayList 是如何能在高并发下保证数据的一致性的。

2023-09-17
虚拟机与并发
0

之前阅读过了 ReentrantLockReentrantReadWriteLock 的源码,我们都发现其继承了 AbstractQueuedSynchronizer 类,平常我们说的 AQS 就是 AbstractQueuedSynchronizer 的简称。其实在我们的juc包下,很多的工具都是依赖于它,今天我们就将了解下AQS的魅力。

2023-09-12
虚拟机与并发
0

前边聊过 ReentrantLock 互斥锁,知道在并发情况下锁竞争的时候通过 CAS 在竞争锁。那在多线程环境下,如何平衡数据一致性与并发性能?ReentrantReadWriteLock 通过读写分离策略给出了优雅的解决方案。

2023-09-11
虚拟机与并发
0

在多线程编程中,锁是保证线程安全的核心机制之一。Java除了提供 synchronized 关键字外,还通过 java.util.concurrent.locks 包提供了更灵活的锁实现。ReentrantLock 是Java并发包中一个重要的锁实现,它提供了比 synchronized 更灵活的锁操作。接下来我们深入了解下Java中的可重入锁。