深入Java并发包(2) – Java说要有并发包, 于是有了AQS

This entry is part 2 of 4 in the series 深入Java并发包

AQS提供了框架,提供了许多可以选择性实现的方法。将他们组合起来,便成了各种我们常用的锁/队列/同步器。本文以ReentrantLock和CountDownLatch为切入口扒一扒源码, 讲一讲思路。 AQS为何物? AQS提供的并发控制框架, 本质上就是将多个线程对竞争对象的操作变成有序的队列. 这从类名也可以看出来AbstractQueuedSynchronizer, A (Abstract) …

深入Java并发包(3) – 容器那些事

This entry is part 3 of 4 in the series 深入Java并发包

说并发包, 不能不说并发安全的容器,这次选择几个最常用的容器,结合前面分析过的Lock基础工具,看看它们的并发容器底层原理。着重分析线程安全部分。 CopyOnWriteArrayList VS. ArrayList CopyOnWriteArrayList 是 ArrayList的线程安全版本, 底层保存均用数组实现, 并含有一个全局变量ReentrantLock实现线程安全. 在add, re …