ConcurrentHashMap(1.7)分析

  1. 先来了解ConcurrentHashMap中的几个成员,当然大多数与HashMap中的相似,我们只看独有的成员

  2. 构造函数

3 . 我们来看put()方法

  1. 来具体看一下SegementMask与SegmentShift这两个变量时怎么使用的?

上面是构造函数中计算这两个变量的代码。

我们假设concurrencyLevel为默认值16,那么经过计算得到,ssize = 16,sshift = 4,segmentShift = 28, segementMask = 15

由于ssize为segements数组的大小,我们可以发现,当 n 与 segmentMask按位与时候正好可以得到

Original: https://www.cnblogs.com/liwangcai/p/11881068.html
Author: 神奇海螺。
Title: ConcurrentHashMap(1.7)分析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/574164/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 无需CORS,用nginx解决跨域问题,轻松实现低代码开发的前后端分离

    近年来,前后端分离已经成为中大型软件项目开发的最佳实践。 在技术层面,前后端分离指在同一个Web系统中,前端服务器和后端服务器采用不同的技术栈,利用标准的WebAPI完成协同工作。…

    Java 2023年5月30日
    084
  • HUST-计算机网络实验-socket编程

    随笔—HUST计网实验:socket编程 博主大三在读,第一次写随笔,水平有限,就当记录一下学习的过程,顺便面试前复习项目的时候看看。 实验要求: 编写一个 Web 服…

    Java 2023年6月5日
    087
  • Java SE 7、接口

    在 Jdk7.0 前,接口里的所有方法都没有方法体,即都是抽象方法 ​ Jdk8.0 后接口可以有静态(static)方法,默认(default)方法,也就是说接口中可以有方法的具…

    Java 2023年6月7日
    058
  • 解决Nginx同网段ip_hash负载均衡无效果

    问题 Nginx ip_hash在局域网中所有机器访问的都是同一台机器没有Hash。造成原因如被Hash的Ip为192.168.1.100;实则上Nginx进行Hash算法时取的是…

    Java 2023年6月5日
    076
  • 后端编写Swagger接口管理文档

    在后端开发当中,编写好多个接口后需要通过注解编写相应的接口文档提供给前端调用接口实现前后端分离。 Swagger接口管理文档 访问接口文档的网页:http://localhost:…

    Java 2023年6月14日
    078
  • java基础-冒泡排序以及稀疏数组

    以下为本人的学习笔记 Ø 冒泡排序原理: 冒泡排序的时间复杂度为O(n²)。 代码: 注意:Arrays. toString()用来输出数组元素转字符串 Ø 使用 稀疏数组的条件:…

    Java 2023年6月15日
    076
  • Bean的作用域

    Spring容器创建的Bean默认是单例的。Spring容器调用配置方法完成Bean的创建之后,Bean就缓存在Spring容器里。之后每次调用同一配置方法创建Bean,Sprin…

    Java 2023年6月5日
    087
  • 利用docker-compose一键部署

    利用docker-compose一键部署 利用docker-compose一键部署 前言 快速编写微服务 common-api nacos-server-provider naco…

    Java 2023年6月13日
    074
  • Mybatis配置解析(核心配置文件)

    4、配置解析 4.1、核心配置文件 Mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息 mybatis-config.xml properties(属性)重…

    Java 2023年6月13日
    0114
  • Jenkins 强制停止 job 执行

    0.背景 某天,Jenkins 运维支持群里,有同学反馈说,点击 job 页面的取消执行按钮不生效,job 执行停不下来。 收到这个反馈后,我自己也试了下,发现确实点页面取消按钮不…

    Java 2023年6月9日
    0100
  • 力扣刷题2-13. 罗马数字转整数

    罗马数字转整数 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M …

    Java 2023年6月13日
    077
  • IntelliJ IDEA 2022年3月17日

    修改设置中编译器选项下的配置,并勾选下图红色框中的所有选项 2. 在高级设置中修改配置,并勾选下图红色框中的选项 IntelliJ IDEA激活码:https://docs.qq….

    Java 2023年6月7日
    068
  • 切入点表达式

    java;gutter:true; /<em> </em>作者:呆萌老师 <em>☑csdn认证讲师 </em>☑51cto高级讲师…

    Java 2023年6月13日
    078
  • MyBatis-Plus联表查询的短板,终于有一款工具补齐了

    原创:微信公众号 &#x7801;&#x519C;&#x53C2;&#x4E0A;,欢迎分享,转载请保留出处。 哈喽大家好啊,我是Hydra。 my…

    Java 2023年6月5日
    084
  • VS Code摸鱼神器,让你快速开发AI模型

    摘要:ModelArts VS Code插件一键接入云上开发环境介绍及操作指导 对于习惯于使用本地VS Code IDE的开发者,受限于本地资源,采用本地开发加云上调测的 远程开发…

    Java 2023年6月15日
    082
  • 5分钟快速搭建一个springboot的项目

    现在开发中90%的人都在使用springboot进行开发,你有没有这样的苦恼,如果让你新建一个springboot开发环境的项目,总是很苦恼,需要花费很长时间去调试。今天来分享下如…

    Java 2023年6月9日
    072
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球