线程安全集合(JDK1.5之前和之后)、CopyOnWriteArrayList、CopyOnWriteArraySet、Queue、ConcurrentLinkedQueue、BlockingQueue、ArrayBlockingQueue、LinkedBlockingQueue、ConcurrentHashMap
JDK1.5之前

JDK1.5之前:Collections.synchronizedList


JDK1.5之后
CopyOnWriteArrayList



CopyOnWriteArraySet



Queue

LinkedList是线程不安全的,但实现了Queue接口

peek()方法

ConcurrentLinkedQueue




BlockingQueue接口

BlockingQueue接口的实现类:ArrayBlockingQueue、LinkedBlockingQueue

LinkedBlockingQueue也可以指定大小,例如LinkedBlockingQueue(10)

ArrayBlockingQueue使用举例1


ArrayBlockingQueue使用举例2(打印没有做同步,但不影响阻塞队列)


ConcurrentHashMap
JDK1.7以前ConcurrentHashMap原理如下图:

JDK1.8的ConcurrentHashMap实现改为CAS无锁算法,效率更高。
ConcurrentHashMap使用举例

https://github.com/godmaybelieve

浙公网安备 33010602011771号