线程安全集合类

    技术2026-02-13  24

    1、老版本线程安全集合类

    HashTable,Vector

    2、Collections装饰的线程安全集合

    Collections.synchronizedCollection(); Collections.synchronizedList(); Collections.synchronizedMap(); Collections.synchronizedSet(); Collections.synchronizedNavigableMap(); Collections.synchronizedNavigableSet(); Collections.synchronizedSortedMap(); Collections.synchronizedSortedSet();

    3、java.until.concurrent包下的线程安全集合

    (1)Blocking

    Blocking大部分实现基于锁,并提供阻塞的方法

    (2)CopyOnWrite

    修改开销较重

    (3)Concurrent

            i)内部使用cas,有较高的吞吐量

            ii)弱一致性

               迭代器遍历时,如果容器发生修改,迭代器仍然可以继续遍历,只是遍历的数据是旧值。求size操作未必100%准确

    案例:

    ConcurrentHashMap

    Map<String, LongAdder> map=new ConcurrentHashMap<>(); //在多线程中判断map中key是否存在,如果不存在,则将key放入mao中,并产生一个累加器 LongAdder longAdder = map.computeIfAbsent(key, (key) -> new LongAdder()); longAdder.increment();

     

    Processed: 0.009, SQL: 10