HashMap HashTable安全
HashTable锁住整个表 会存在复合操做上的问题“若不存则添加” “若存在则删除” 也是不安全的 效率低并发
ConcurrentHashMap:采用锁分段机制 并发级别:concurrentLevel并发级别 默认16 ide
支持多个thread同事访问一个hashmap 而且线程安全spa
jdk1.8 将锁分段改为CAS线程
ConcurrentSkipListMap一般优于同步的TreeMapcode
当指望的读书和遍历远远大于列表的更新数时,CoprOnWriteArrayList优于同步的ArrayListblog
CopyOnWriteArrayList:在迭代的同时 向list中添加数据 发生并发修改该异常ConcurrentModificationExceptionip
public class TestCOAL { public static void main(String[] args) { for(int i=0;i<10;i++){ new Thread(new HelloThread()).start(); } } } class HelloThread implements Runnable{ private static List<String> list =Collections.synchronizedList(new ArrayList<>()); static { list.add("AA"); list.add("BB"); list.add("CC"); } @Override public void run() { Iterator<String> it = list.iterator(); while (it.hasNext()){ System.out.println(it.next()); list.add("AA"); } } }
使用CopyOnWriteArrayList可以解决以上问题:写入并复制同步
private static List<String> list =new CopyOnWriteArrayList<>();
CopyOnWriteArrayList进行添加操做多的时候 效率低,每次都要复制 当进行并发迭代操做多时能够选择。hash