java常用并发类的使用与替换

1、Concurrent-HashMap

      使用Concurrent-HashMap用来替换同步基于散列的Map,增加了对一些常见复合操作的支持,例如若没有则添加、替换以及有条件删除等。封装了额外的原子Map操作。

2、CopyOnWriteArrayList

      CopyOnWriteArrayList用于替代同步List,在某些情况下它提供了更好的并发性能,并且在迭代期间不需要对容器进行加锁或复制。

      显然,每当修改容器时都会复制底层数组,这需要一定的开销,特别是当容器的规模较大时,仅当迭代操作远远多于修改操作时,才应该使用"写入时复制"容器。这个准则很好的描述了许多事件通知系统:在分发通知时需要迭代已注册监听器链表,并调用每一个监听器,在大多数情况下,注册和注销事件监听器的操作远小于接收事件通知的操作。

3、BlockingDeque

      它对Queue和BlockingQueue进行了扩展,是一个双端队列,实现了在队列头和队列尾的高效插入和移除。具体实现包括ArrayDeque和LinkedBlockingDeque。

      例如,在网页爬虫程序中处理一个页面时,通常会发现有更多的页面需要处理。类似的还有许多搜索图的算法,例如垃圾回收阶段对堆进行标记。

      访问自己的双端队列,从而极大的减少了竞争。当工作线程需要访问另一个队列时,它会从队列的尾部而不是头部获取工作,降低了队列上的竞争程度。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值