ConcurrentHashMap:我们可以信任它吗?

2024-01-12

来自ConcurrentHashMap的文档:

支持完全并发检索和可调整的更新预期并发的哈希表。

我们能否完全相信ConcurrentHashMap线程安全操作吗?

我正在使用 ConcurrentHashMap 将键与其值进行映射。我的键值对是:

Map<Integer,ArrayList<Double>> map1 = new ConcurrentHashMap();

key 的大小范围为 [0,1000000]。我有 20 个线程,可以一次访问/修改与一个键对应的值。这种情况并不常见,但这种情况是可能的。我是 通过以下方法获得无穷大:

Double sum =0.0; 
sum = sum + Math.exp(getScore(contextFeatureVector,entry.getValue())+constant);

contextFeatureVector and entry.getValue()是与键关联的数组列表。

[EDIT]

 constant =0.0001

private double getScore(List<Double> featureVector,List<Double>weightVector) throws NullPointerException    
{
    double score =0.0;
    int length = featureVector.size();
    for (int i =0 ; i< length ; i++){
    score = score + (featureVector.get(i)*weightVector.get(i)); 
    }

    return score;
}

Both featureVector<> and weightVector看起来像


[-0.005554038592516575, 0.0048966974158881175, -0.05315976588195846, -0.030837804373964654, 0.014483064988148562, -0.018962129117649, -0.015221386014208877, 0.015825702365331477, -0.11363620479662287, 0.00802609847263844, -0.062106636476812194, 0.008108854471293185, -0.03193255218671684, 0.04949650992670292, -0.0545583154094599, -0.04873314092706468, 0.013534731656877033, 0.08433117163682455, 0.050310355477044114, -0.002420513353516017, -0.02708299928442614, -0.023489187394176294, -0.1277699782685597, -0.10071004855129333, 0.08649040730064464, -0.04940329664431305, -0.027481729446035053, -0.0571846057609884, -0.036738550618481455, -0.035608113682344365]
  

它是线程安全的,但可以以非线程安全的方式使用它。

我怀疑您没有对问题进行足够的调查,无法确定已经使用了十多年的 JDK 库中存在错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ConcurrentHashMap:我们可以信任它吗? 的相关文章

  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • Spring AspectJ 在双代理接口时失败:无法生成类的 CGLIB 子类

    我正在使用Spring的
  • 过滤两次 Lambda Java

    我有一个清单如下 1 2 3 4 5 6 7 和 预期结果必须是 1 2 3 4 5 6 7 我知道怎么做才能到7点 我的结果 1 2 3 4 5 6 我也想知道如何输入 7 我添加了i gt i objList size 1到我的过滤器
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • 每个托管线程是否都有自己对应的本机线程?

    我想知道是否在 Net 中创建托管线程 通过调用Thread Start 导致在后台创建一个本机线程 那么托管线程是否有对应的本机线程呢 如果是 当托管线程等待或睡眠时 是否意味着相应的本机线程也在等待或睡眠 是的 NET 线程映射到所有当
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • Android 中的处理程序与异步调用

    目前我正在使用处理程序来调用 Web 服务方法以使其在后台运行 问题是它需要更多的时间来给出响应 在性能方面似乎更昂贵 现在我计划使用异步调用 哪一个是最好的 Android 中的处理程序和异步调用有什么区别 请帮我想出一个最好的解决方案
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • Dart 运行时检查 switch 语句中的类型

    我在尝试检查 Dart 中某些对象的运行时类型时发现了一些奇怪的行为 让我们举一个简单的例子 main List
  • 如何以编程方式将最小化的无模式 WinForm 带到之前显示的位置?

    为了在单击事件时将无模式 Windows 窗体恢复到其先前的位置 我尝试使用下面所示的代码 但它不起作用 如果我遗漏了什么 请告诉我 public void SetFocus this Focus this BringToFront if
  • MVC 3 从 web.config 中的 AppSettings 获取值

    在普通的 ASP NET Web 表单站点中 我会使用 web configs appsettings 将应用程序设置数据添加到站点 但是 在使用 MVC 3 时 我无法以这种方式检索设置值 首先 有 2 个 web config 文件 第
  • wx.TextCtrl(或底层 GTK+)的多线程问题

    我正在开发一个GUI来启动外部长期运行的后台程序 该后台程序可以通过 stdin 给出输入命令 并使用 stdout 和 stderr 来保持打印输出和错误消息 我在 GUI 中使用 wx TextCtrl 对象来提供输入和打印输出 我当前
  • 允许图像缩小,但不允许拉伸

    我的网站有 4 000 多个页面 每页有 10 个或更多不同大小的 jpeg 图像 我正在努力使该网站对移动设备更加友好 为此 我希望能够缩小图像以适应较小的屏幕 我知道我可以做这样的事情来表明图像可以缩小 img bodyImg widt
  • 下载图像并在 BlackBerry 上显示

    我必须开发一个网址 其中涉及从网址下载图像并在黑莓刺激器中显示 任何人都可以在这方面帮助我吗 此代码将连接给定的 URL 并返回 Bitmap 对象 public static Bitmap connectServerForImage St
  • LINQ 表达式> 相当于 .Contains()

    有谁知道如何使用 Linq 表达式创建 Contains string 函数 甚至创建谓词来完成此操作 public static Expression
  • 如何仅使用 CSS 制作选项卡? [复制]

    这个问题在这里已经有答案了 我正在寻找像这样的选项卡系统jQuery 选项卡 http jqueryui com tabs 用户可以在不同的面板之间切换以查看不同的内容 但是 我需要在不使用 JavaScript 的情况下完成此操作 以便未
  • C/C++ 是否有允许任意精度指数的任意精度浮点库?

    我正在寻找 C C 的任意精度浮点库 首选普通 C 我需要任意精度的指数 GMP 和 MPFR 使用固定大小的指数 因此它们不符合条件 我有一些解决方法的想法 但我更喜欢开箱即用的解决方案 如果指数精度可以自动调整以防止无穷大值 那将是一个
  • Django DRF,如何使用 DRF 操作正确注册自定义 URL 模式

    背景 我有一个定义了多个自定义操作的 ModelViewSet 我正在使用我的默认路由器urls py注册 URL 现在 我的视图使用默认创建的路由 例如 images images pk 为了让用户能够使用他们熟悉的资源名称来使用 API
  • Matlab 中 += 相当于什么?

    在Matlab中是否可以增加变量的值而不在语句的右侧重新声明它 AFAIK MATLAB 中没有这样的东西 这是可以理解的 http groups google com group comp soft sys matlab browse f
  • ForEach-Object -Parallel 参数集无法解析

    使用 powershell 并执行以下操作时本文 https devblogs microsoft com powershell powershell foreach object parallel feature 运行以下示例会引发错误
  • ColdFusion 并从 MySQL 获取数据

    我正在 CF 网站上工作 需要从 MySQL 表中获取数据 我可以很好地创建 CFQuery 并检查返回的记录 但如何获取返回的记录并循环它们并从每行中的特定字段获取数据 我可以写 while if end if 等 我只是不记得如何访问数
  • 指向索引处向量的指针与迭代器

    我有一个矢量 myvec我在代码中使用它来保存内存中的对象列表 我在 正常 向量中保留一个指向当前对象的指针C时尚通过使用 Object pObj myvec index 如果 myvec 没有变得足够大以至于无法在某个过程中移动 那么这一
  • 使用 NodeJS 的 IExpress 安装后批处理未立即找到 NPM

    我正在尝试使用 iExpress 在我在 NodeJS 上创建的小脚本上安装依赖项 iExpress 包只需安装 Node 包 msiexec i node msi 然后运行安装后批处理 将 Javascript 放入 UserProfil
  • API 级别 19 上 grantUriPermission 中的 IllegalArgumentException

    下面这行代码 context getApplicationContext grantUriPermission packageName uri Intent FLAG GRANT PERSISTABLE URI PERMISSION 在 A
  • 为什么 mypy 拒绝我的“混合联合”类型声明?

    While 解决 Python 聊天中的半相关问题 https chat stackoverflow com transcript message 49920836 49920836 我在 mypy 中发现了一些我不理解的行为 from t
  • Hive 执行钩子

    我需要在 Apache Hive 中挂钩自定义执行挂钩 如果有人知道该怎么做 请告诉我 我当前使用的环境如下 Hadoop Cloudera 版本 4 1 2 操作系统 Centos 谢谢 阿伦 有多种类型的挂钩 具体取决于您要在哪个阶段注
  • setuptools、distribution 和 pip 之间如何相互关联?

    我一直在通过 Learn Python The Hard Way 第二版 一书自学 Python 在练习 46 中 它告诉我阅读 Pip Distribute 和其他一些软件包 pip 的文档足够清楚了 它允许我安装 卸载和升级软件包 阅读
  • ConcurrentHashMap:我们可以信任它吗?

    来自ConcurrentHashMap的文档 支持完全并发检索和可调整的更新预期并发的哈希表 我们能否完全相信ConcurrentHashMap线程安全操作吗 我正在使用 ConcurrentHashMap 将键与其值进行映射 我的键值对是