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中的可重入锁。

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

在开始以前,先思考下什么是线程创建有哪几种方式,为了避免频繁创建和销毁线程造成不必要的性能,一般在使用线程时,会采用线程池,那什么是线程池呢?