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

高并发编程之MapMaker

在我之前的文章中有介绍过这个类,这个类就是增强版的ConcurrentHashMap的工具类,经常出现在高并发场景中,我们先来研究一下MapMaker内部类

一、类声明与基础结构

package com.google.common.collect;import com.google.common.annotations.GwtCompatible;
import com.google.common.annotations.GwtIncompatible;
// ... 其他导入@ElementTypesAreNonnullByDefault
@GwtCompatible(emulated = true)
public final class MapMaker {
  • 包声明:属于Guava集合框架的核心包
  • 注解说明
    • @GwtCompatible(emulated = true) 表示该类支持GWT编译但需要模拟实现
    • final修饰符表明该类不可被继承,符合工具类的设计原则

二、常量字段定义

private static final int DEFAULT_INITIAL_CAPACITY = 16;
private static final int DEFAULT_CONCURRENCY_LEVEL = 4;
static final int UNSET_INT = -1;

常量含义

  • DEFAULT_INITIAL_CAPACITY=16:默认初始容量,与HashMap一致
  • DEFAULT_CONCURRENCY_LEVEL=4:默认并发级别,控制并发更新线程数
  • UNSET_INT=-1:特殊标记值,表示参数未被设置

三、配置字段详解

boolean useCustomMap;
int initialCapacity = -1;
int concurrencyLevel = -1;
@CheckForNull MapMakerInternalMap.Strength keyStrength;
@CheckForNull MapMakerInternalMap.Strength valueStrength;
@CheckForNull Equivalence<Object> keyEquivalence;

字段作用

  1. useCustomMap:标志位,决定是否使用自定义Map实现(如弱引用、过期时间等特性)
  2. initialCapacity:初始容量,-1表示使用默认值
  3. concurrencyLevel:并发级别,影响Segment数量
  4. keyStrength/valueStrength:控制键/值的引用强度(STRONG、WEAK、SOFT)
  5. keyEquivalence
http://www.dtcms.com/a/536075.html

相关文章:

  • PCIe协议之复位篇之 PERST# 信号(二)
  • deque的优缺点
  • 基恩士PLC自定义定时器(预设值支持Real类型)
  • 【逆向】Android程序Hook native方法
  • dw做的网站乱码网站建设设计语言
  • 网站模板拍卖seo教程
  • 《jEasyUI 创建 CRUD 数据网格》
  • 神经网络之窗口大小对词语义向量的影响
  • 计算机视觉:pyqt5+yoloV5目标检测平台 python实战 torch 目标识别 大数据项目 目标跟踪(建议收藏)✅
  • OpenCV 高级图像处理
  • UML内容
  • 【强化学习核心解析】特点、分类与DQN算法及嵌入式低功耗应用
  • OpenCV轻松入门_面向python(第八章 形态学操作)
  • 网站建设维护面试英雄联盟网站模板
  • 网络安全:金盾 RASP 应用防护
  • Cursor MCP Java程序员从零开始实战教程 第一章-第四节-MCP服务器安装与配置
  • __金仓数据库替代MongoDB护航医疗隐私:医院患者随访记录安全存储实践__
  • 有没有教做衣服的网站济南建设工程交易中心网站
  • MongoDB使用命令行导出导入索引
  • __金仓数据库平替MongoDB全栈安全实战:从文档存储到多模一体化的演进之路__
  • Python爬虫实战:新闻数据抓取与MongoDB存储全流程
  • 一站式搭建WordPress网站与Nginx RTMP流媒体服务
  • 使用 EasyExcel 进行 多 Sheet 导出
  • 做游戏网站赚钱么云服务器怎么用详细步骤
  • 建设网站的技术回龙观手机网站开发服务
  • 边缘计算与物联网中的 MDM和OTA
  • Linux物联网常用7天循环视频录制软件架构解决方案
  • Arguments: ls-remote --tags --heads git://github.com/adobe-webplatform/eve.git
  • Glide 图片缓存:异步更新 + 动画支持 + 自定义目录+自定义刷新时效
  • SWAT模型应用