题目
推荐解析
1.CopyOnWriteArrayList
CopyOnWriteArrayList适合使用在读操作远远大于写操作的场景里,比如缓存。
2.ReadWriteLock
ReadWriteLock 当写操作时,其他线程无法读取或写入数据,而当读操作时,其它线程无法写入数据,但却可以读取数据 。适用于 读取远远大于写入的操作。
3.ConcurrentHashMap
ConcurrentHashMap是一个线程安全的Hashtable,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。
ConcurrentHashMap与Hashtable相比:
因为hastable是对整个代码块加锁,而concurrenthasmap是使用分片锁,粒度较小,不用对整个代码块加锁,提高了读写速率
4.volatile
volatile只能保证变量的安全,不能保证线程的安全