您好,欢迎来到汇智旅游网。
搜索
您的当前位置:首页多线程学习(六)ConcurrentHashMap

多线程学习(六)ConcurrentHashMap

来源:汇智旅游网

ConcurrentHashMap

简介

  • ConcurrentHashMap是J.U.C包中的提供高效和线程安全性高的 HashMap ,所以ConcurrentHashMap 在并发场景使用性高。
  • ConcurrentHashMap是 Map 的派生类,所以 api 基本和 Hashmap 是类似,主要就是 put 、get 这些方法。

JDK1.7 与 JSDK1.8 的比较

源码分析

  1. put()方法源码分析

总结

  • ConcurrentHashMap是Java中的一个线程安全且高效的HashMap实现。平时涉及高并发如果要用map结构,那第一时间想到的就是它。相对于hashmap来说,ConcurrentHashMap就是线程安全的map,其中利用了锁分段的思想提高了并发度。
  • JDK 1.8 之后,采用了 CAS + synchronized 来保证并发安全性
  • ConcurrentHashMap 记录元素是通过 CounterCell 数组来记录的,而这个数组可以利用分布式的思想极大的加强并发效率
  • ConcurrentHashMap 添加元素是通过CAS 的操作去完成的,但是如果当前数组下标有元素,说明 hash 碰撞了,就要使用synchronized 锁住,然后进行链表的添加

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- hzar.cn 版权所有 赣ICP备2024042791号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务