当前位置: 首页 > news >正文

长春网站提升排名手机百度网页版主页

长春网站提升排名,手机百度网页版主页,个人主页展示店铺,雄县没有做网站的公司问题描述 ConcurrentHashMap 底层具体实现以及实现原理 分析维度#xff1a; 1. ConcurrentHashMap的整体架构 2. ConcurrentHashMap的基本功能 3. ConcurrentHashMap在性能方面的优化 解决方案#xff1a; ConcurrentHashMap 的整体架构 如图所示#xff0c;这个是 Concu… 问题描述 ConcurrentHashMap 底层具体实现以及实现原理 分析维度 1. ConcurrentHashMap的整体架构 2. ConcurrentHashMap的基本功能 3. ConcurrentHashMap在性能方面的优化 解决方案 ConcurrentHashMap 的整体架构 如图所示这个是 ConcurrentHashMap 在 JDK1.8 中的存储结构它是由数组、 单向链表、红黑树组成。 当我们初始化一个ConcurrentHashMap实例时默认会初始化一个长度为16的数组。 由于 ConcurrentHashMap 它的核心仍然是 hash 表所以必然会存在 hash 冲突问题。         ConcurrentHashMap 采用链式寻址法来解决 hash 冲突。 当 hash 冲突比较多的时候会造成链表长度较长这种情况会使得 ConcurrentHashMap 中数据元素的查询复杂度变成 O(n)。因此在 JDK1.8 中引入了 红黑树的机制。 当数组长度大于 64 并且链表长度大于等于 8 的时候单项链表就会转换为红黑树。 另外随着 ConcurrentHashMap 的动态扩容一旦链表长度小于 8红黑树会退化成单向链表。 ConcurrentHashMap 的基本功能 ConcurrentHashMap 本质上是一个 HashMap因此功能和 HashMap 一样但是 ConcurrentHashMap 在 HashMap 的基础上提供了并发安全的实现。 并发安全的主要实现是通过对指定的 Node 节点加锁来保证数据更新的安全性如图 所示。 ConcurrentHashMap 在性能方面做的优化 如果在并发性能和数据安全性之间做好平衡在很多地方都有类似的设计比如 cpu 的三级缓存、mysql 的 buffer_pool、Synchronized 的锁升级等等。 ConcurrentHashMap 也做了类似的优化主要体现在以下几个方面 a、 在 JDK1.8 中ConcurrentHashMap 锁的粒度是数组中的某一个节点而在                       JDK1.7锁定的是 Segment片段锁的范围要更大因此性能上会更低。 b、引入红黑树降低了数据查询的时间复杂度红黑树的时间复杂度是 O(logn)。 消耗的时间从小到大 O(1) O(logn) O(n) O(nlogn) O(n2) O(n3) O(2n) O(n!) O(nn) c、如图所示当数组长度不够时ConcurrentHashMap 需要对数组进行扩容 在  扩容的实现上ConcurrentHashMap 引入了多线程并发扩容的机制 简单来说 就是多个线程对原始数组进行分片后每个线程负责一个分片的数据迁移从而提 升了扩容过程中数据迁移的效率。 d、ConcurrentHashMap 中有一个 size()方法来获取总的元素个数而在多线程并发场                        景中在保证原子性的前提下来实现元素个数的累加性能是非常低的。                                          ConcurrentHashMap 在这个方面的优化主要体现在两个点 当线程竞争不激烈时直接采用 CAS乐观锁 来实现元素个数的原子递增。如果线程竞争激烈使用一个数组来维护元素个数如果要增加总的元素个数则直接从数组中随机选择一个再通过 CAS 实现原子递增。它的核心思想是引入了数组来实现对并发更新的负载。 最后 从以上看到ConcurrentHashMap 里面有很多设计思想值得学习和借鉴。 比如锁粒度控制、分段锁的设计等它们都可以应用在实际业务场景中。         当有足够的积累之后会发现从这些技术底层的设计思想中能够获得很多设计思路。
http://www.zqtcl.cn/news/417876/

相关文章:

  • 网站推广基本方法是文创产品设计稿
  • 厦门网站制作公司推荐作文网投稿网站
  • 网站开发过什么软件杭州cms建站模板下载
  • 做中东服装有什么网站谁能给我个网址
  • 深圳网站建设公司服务平台河北省建设银行网站首页
  • 新密网站网页版微信小程序在哪
  • 长春建一个网站大概要多少钱微信公众号开店流程
  • 网站运营实例django 微信小程序开发教程
  • wordpress 搭网站郑州网站建设华久
  • 网站建设图片尺寸专门做音乐的网站
  • 株洲做网站外贸推广产品
  • 枫叶的网站建设博客企业网站样板制作
  • 织梦网站文章相互调用百度下载老版本
  • pc网站的优势网站建设款属不属于无形资产
  • 网站建设数据安全分析网络全案推广
  • 网站建设哪家好就推 鹏博资讯手机自助建网站
  • 沈阳网站制作招聘网长治网站建设电话
  • 承德网站设计公司余姚做百度网站
  • 阿里云购买网站空间做网站怎么插音乐循环
  • 网站设计时应考虑哪些因素惠州做网站
  • 西安网站搭建的公司网站建设条例
  • 网站建设联系网站改备案信息吗
  • 建设一个看电影的网站唐山网址建站
  • 呼和浩特网站建设价格vs网站开发入门
  • 中国农业工程建设协会网站有专业做线切割配件的网站吗
  • 东莞建网站公司哪个好陕西手机网站建设公司
  • 网站系统里不能打印西安哪有学做淘宝网站
  • 哈尔滨建站模板大全天猫购买
  • 去后台更新一下网站百度最新版下载
  • 盐城网站开发教育建设网站