我用CopyOnWriteArrayList的蛮多的。当
- 线程执行大量读取
- 线程执行一点写操作
但是,我会Collections.synchronizedList()在何时使用
- 线程执行一点读取
- 线程执行大量写入
这是因为根据CopyOnWriteArrayList Java Doc
ArrayList 的线程安全变体,其中所有可变操作(添加、设置等)都是通过制作底层数组的新副本来实现的。
这通常太昂贵了,...
说到这里ConcurrentHashMap,我想知道我是否仍然可以在选择ConcurrentHashMap时应用相同的逻辑Collections.synchronizedMap()?
ConcurrentHashMap每次我执行写操作时都会制作底层数据结构的新副本吗?如果写操作多于读操作,它的性能会比 Collections.synchronizedMap 差吗?