当前位置: 代码迷 >> 综合 >> 学习笔记————————ConcurrentHashMap,CopyOnWriteArrayList
  详细解决方案

学习笔记————————ConcurrentHashMap,CopyOnWriteArrayList

热度:93   发布时间:2023-11-07 14:06:27.0

Segment类

     Sefment集成ReentrantLock,具有加锁解锁的功能,segments有多少个元素,说明就有多少把锁,扮演了分段锁,降低并发竞争度

     只有写才会对对应的Segment加锁,读不加锁

 

为什么需要CopyOnWriteArrayList?

   ArrayList当读写线程同时运行时,使用fast-fail机制,抛出ConcurrentModifficationException异常

   ArrayList在读写线程同时运行时,无法满足开发者需求

改用CopyOnWriteArrayList后:

   读写同时进行时,不会抛出ConcurrentModificationException异常

优点:

      线程安全,可以兼容读写并发

缺点:

     耗内存(写时复制)

     数据实时性不高,可能获取到旧数据

COWAL 使用场景:

    读多写少,如白名单黑名单等

    集合数量不大

    数据要求不是强实时

 

  相关解决方案