Java同步集合

CopyOnWriteArrayList

读写分离。写加锁,读时拷贝后修改,然后再设置给原列表。读时,若有其他线程正在写,则读的是旧数据。

ConcurrentHashMap

锁分段技术,访问哪段数据就需要获得哪段数据的锁。有些跨段的方法,如size和containsValue,需要锁住整个容器,需要按顺序锁住所有段,操作完毕后,又按顺序释放所有段的锁。

BlockingQueue

当队列满了以后,若再有线程调用put方法,那么线程就会阻塞。这就是简单的生产者和消费者。

推荐阅读:
聊聊并发(一)深入分析Volatile的实现原理
聊聊并发(二)Java SE1.6中的Synchronized
聊聊并发(三)Java线程池的分析和使用
聊聊并发(四)深入分析ConcurrentHashMap
聊聊并发(五)原子操作的实现原理
聊聊并发(六)ConcurrentLinkedQueue的实现原理分析
聊聊并发(七)——Java中的阻塞队列
聊聊并发(八)——Fork/Join框架介绍
聊聊并发(十)生产者消费者模式

你可能感兴趣的:(Java进阶)