并发 hashmap 不需要同步 getter/setter 吗?

2023-12-08

如果我使用并发哈希图并且我有设置和获取值的方法,因为我使用并发哈希图,我需要使 getter 和 setter 同步吗?这是多余的吗?有一种设计更好吗?

另外,没有同步的并发哈希图是否比具有同步 getter 和 setter 的哈希图更快?这是为了高性能系统

谢谢


  1. java.util.concurrent.ConcurrentHashMap是线程安全的
  2. 它比使用更快synchronized(object)
  3. 您仍然需要小心,不要通过这样的代码创建“逻辑”竞争条件

    if (map.get(key) != null) {
        map.put(key, new SomethingStrictlyUnique());
    }
    
  4. 根据经验,用并发集合替换同步集合可以提供显着的效果可扩展性风险很小的改进。

  5. 根据javadoc,ConcurrentHashMap 返回的迭代器是“弱一致”的(而不是快速失败),因此它们容忍并发修改,遍历构造迭代器时存在的元素,并且may反映迭代器构造后对集合的修改。

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

并发 hashmap 不需要同步 getter/setter 吗? 的相关文章

  • XSD 验证错误:在 web.xml 中找不到 TagLib 标记

    我详细显示错误如下 cvc complex type 2 4 a 发现以元素开头的无效内容 taglib One of http java sun com xml ns javaee 描述 http java sun com xml ns
  • 如何实现 Eclipse 清理和构建(又名重建)?

    我删除了我的 binEclipse Indigo 中的文件夹 与 Helios 非常相似 现在我想知道如何重建我的 Java 项目 我只是找不到像 Netbeans 中那样的按钮 对于 Eclipse 您可以在下面找到重建选项项目 gt 清
  • 从插件设置 Maven 属性

    我在这里阅读了一些关于如何从 Maven 插件设置属性的问题 其中大多数讨论了应用程序的版本号 似乎没有简单的方法可以做到这一点 我发现的最佳解决方案是拥有一个从插件更新的 filter properties 文件 并由主 pom 文件使用
  • Jackson反序列化SNS消息错误MismatchedInputException

    我正在编写一个通过 SNS HTTP 请求处理来自 Amazon Simple Email Service 的回调的功能 我想将亚马逊提供的消息解析为本地对象结构 问题是 SNS 将 JSON 消息包装成字符串 并且 Jackson 无法解
  • 什么是“非阻塞”并发?它与普通并发有何不同?

    什么是 非阻塞 并发 它与使用线程的普通并发有何不同 为什么不在所有需要并发的场景中都使用非阻塞并发呢 使用非阻塞并发有开销吗 我听说Java中可以实现非阻塞并发 我们是否应该在特定场景下使用此功能 将这些方法之一与集合一起使用是否有区别或
  • Maven:无法在 OS X 上找到 java.lang 问题

    当我尝试时遇到以下问题mvn clean install显然它无法找到运行时 jar 但我需要做什么 错误日志 ERROR COMPILATION ERROR INFO ERROR Failure executing javac but c
  • 如何制作具有两个索引的 Map?

    我在java中有一张这样的地图 Map
  • 将双精度转换为二进制表示形式?

    我尝试将双精度数转换为其二进制表示形式 但使用此Long toBinaryString Double doubleToRawLongBits d 没有帮助 因为我有大量数字 Long 无法存储它们 即2 900 Long toBinaryS
  • java.io.IOException: EnsureRemaining: 仅剩余 0 个字节,尝试读取 1

    我在 giraph 中的自定义类方面遇到一些问题 我制作了 VertexInput 和 Output 格式 但总是收到以下错误 java io IOException ensureRemaining Only bytes remaining
  • 如何将 Struts 2 与 Velocity 和 Tiles 结合使用

    有人能够获得与 struts 2 一起使用的速度和图块吗 我在网上查找示例或教程时遇到一些问题 从我从邮件列表中收集到的信息来看 这似乎根本不可能 但邮件已经很旧了 https struts apache org docs tiles pl
  • Java生成范围内不重复的随机数

    我想生成 1 到 4 范围内的随机数 包括 4 这是我的代码 int num r nextInt 4 1 r is instance of Random 但是 我在循环中运行上述代码 并且不想重复随机数 现在发生的事情我经常得到 1 1 1
  • Java OR 运算符优先级

    如何在 Java 中以 if 的方式链接条件语句b是假的 不如不检查c If a and c是假的 并且b是真的 确实c会被检查吗 if a b c 我正在寻找 PHP 所拥有的类似功能 但两者之间存在差异OR and 爪哇 如果左操作数是
  • IDEA:javac:源版本1.7需要目标版本1.7

    使用 IntelliJ IDEA 运行 JUnit 测试时 我得到 我该如何纠正这个问题 使用SDK 1 7 模块语言级别为1 7 Maven 构建工作正常 这就是为什么我相信IDEA配置问题 您很可能在此处从 Maven 导入了不正确的编
  • Spring Security登录返回404

    我目前正在使用 Spring 框架开发我的博客 我正在实现 Spring Security 用于登录目的 一切都按预期进行 直到我提交始终返回 404 代码的登录凭据 这是我的 web xml 代码e
  • HYBRIS - 组件和插槽如何在 JSP 文件中工作?

    最近我正在使用 Hybris 我无法理解这些组件是如何工作的 我知道如何创建和定义一个 如何将它们添加到我想要的页面等 但我不明白如何使用该标签
  • Java文本输出中的UTF-8编码问题

    我一直致力于测试高棉语 Unicode Wordbreaker 的各种解决方案 高棉语单词之间没有空格 这使得拼写检查和语法检查变得困难 以及从旧高棉语转换为高棉语 Unicode 我得到了一些源代码 现在在线 http www white
  • JS 中的 .Jar 文件

    有谁知道如何在 JS 中访问 jar 文件 我已经用 Java 创建了类并作为 jar 文件导入 我想从 JS 文件访问该类 大家好 我感谢你们所有人 我尝试在 Firefox XUL 中使用 JS 列出文件夹中的文件 但我做不到 然后我决
  • 如何组织课程、课程包[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 您如何决定包名称应该是什么以及什么类应该放入哪个包中 我正在开发一个项目 在该项目中 我不断添加 删除类 并且不确定我是否需要一个新包 或者应该将其添
  • Java 8 流过滤器 - 基于排序的更新

    我正在尝试对过滤器中的字段进行排序 输入文件 样本记录 DocumentList Document id 5975ff00a213745b5e1a8ed9 u id mailboxcontent id 5975ff00a213745b5e1
  • java 更新进度条

    我有一个 JFrame 和以下组件 JButton jButton1 Progress Bar ProgressBar 及其公共静态 JLabel 状态及其公共静态 单击按钮时会执行不同的语句 我想在每个语句后更新我的进度条 这是我的代码

随机推荐

  • 在 Rust 中,存储较大的类型更快还是存储较小的类型并始终强制转换它们更快?

    我正在用 Rust 开发一个国际象棋引擎 我有一个Move结构与from and to字段 它们是Square Square是一个包含一个结构体usize 这样我在访问该职位的棋盘元素时就可以直接使用它 因为在 Rust 中索引必须用usi
  • 在 Windows 7 上安装 Ruby on Rails - 快速且简单 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 由于我在装有 Windows 7 的笔记本电脑上安装 RoR 时遇到了很多问题 因此我想与您分享我的步骤 许多人告诉您使用 InstantRails 我也这样做了 但下面的选项最
  • 有没有办法在 Eclipse 中生成“Lorem ipsum”?

    我正在寻找一种生成方法Lorem ipsum在 Eclipse 中为虚拟文本创建视图时 例如 在 Visual Studio 中 您只需输入即可完成lorem并按选项卡 在日食中有什么可以做到的吗 任何想法 在 Android Studio
  • mysql 连接表

    我有4张桌子 表 A 具有用户 user id username and name 具有令牌的表 B token id user id 每个用户有 10 个令牌条目 每个令牌仅分配给一个用户 一个用户拥有多个代币 10 表C即街机游戏 ar
  • 如何为单个字符着色并保持适当的间距/字距调整/对齐?

    我想使用 Graphics DrawString 使用单独的颜色绘制字符 问题是 每次调用 DrawString 时 我都必须知道相对于其他字符的位置 使用点或矩形 当考虑到在具有 StringFormat 的矩形中使用 DrawStrin
  • 内联 JavaScript 会阻塞 UI 线程吗?

    我读了这篇好文章外部脚本如何阻塞 UI 线程但我不清楚阻塞是否实际上是由于存在
  • 根据SDK版本加载类

    有什么方法可以根据手机运行的操作系统版本加载类吗 例如 我制作了一个需要 1 6 Android 的应用程序 有没有办法让我根据手机运行的操作系统加载一个类或另一个类 我特意询问这个联系人 数据库已从 1 6 更改为 2 0 旧版本不会在新
  • for in 循环内部如何工作 - Objective C - 基础

    我找到了这个答案 https stackoverflow com a 5163334 1364174 其中介绍了如何for in循环被实现 NSFastEnumerationState enumState 0 id objects MAX
  • 带查找的动态数组的行式文本连接

    这个问题与以下问题密切相关这个答案来自用户马克 菲茨帕特里克 My sheet image 我在 M3 和 AB3 同一列表 中有一个国家 地区代码标题的变量列表 以及在 A4 中作为行的唯一 提及 的变量列表 M4 和 AB4 中的公式计
  • AttributeError:无法访问“DataFrameGroupBy”对象的可调用属性“groupby”

    我有一个包含 3 列的数据框 我想通过执行以下操作来根据筷子长度对列进行分组 meansByCL df chopstick groupby Chopstick Length Food Pinching Efficiency mean res
  • 使用 IP 地址和 SNI 启动 https 连接

    我在用着WinHttpConnect为了在我的 Windows 应用程序和远程服务器之间建立 https 连接 但是 我的服务器不一定有 DNS 地址 因此通过设置建立连接pswzServerName到原始 IPV4 地址 WINHTTPA
  • 如何将单元中定义的组件添加到Delphi调色板?

    我有一个定义组件的 pa 单元 我怎样才能将它添加到调色板 我知道的唯一方法是将其包含在包中 有直接的方法吗 在一个包中 有一个单元有一个名为Register 大小写很重要 在该过程中 调用RegisterComponents在您想要显示在
  • 如何获取Qt中通过样式表设置的小部件的字体?

    我有 Qt 应用程序 应用了自定义样式表 以及一般的所有小部件 并在此样式表中包含自定义字体 但是当尝试获取某些小部件的字体时font 方法返回不同的字体 我想获得a的字体QWidget这是由样式表设置的 这font 方法总是返回全局系统字
  • 适用于 Xcode 6 的 iPhone 4 模拟器

    我需要模拟 iPhone 4 不是 iPhone 4S 我得到了 iPhone 的完整列表 但 4 不是其中之一 在谷歌上搜索了一个小时后 我抓狂了 我做错了什么 我也尝试过修改构建设置但无济于事 没有针对 iPhone 4 的选项 您认为
  • 将范围复制到虚拟范围

    是否可以将范围复制到虚拟范围 或者是否需要我将其随意粘贴到工作簿中的另一个范围中 dim x as range x copy of Range A1 A4 显然我通常使用以下代码 dim x as range set x Range A1
  • 未知服务错误 botocore

    我正在尝试使用最近的亚马逊转录服务 transcribe boto3 client transcribe 我收到以下错误 botocore exceptions UnknownServiceError Unknown service tra
  • 创建独立进程!

    我正在尝试从 C 中的服务创建一个进程 这个新进程是作为子进程创建的 我想创建一个独立的进程而不是子进程 我正在使用 CreateProcess 函数来实现相同的目的 由于我创建的新进程是一个子进程 当我尝试在服务级别杀死进程树时 它也会杀
  • CSS中的梯形div

    我想要内容为梯形的部分div但我不知道如何开始或实现我的目标的最佳方法是什么 我遇到过这个解决方案 但没有太多信息可供我理解CSS3 转换为梯形 HTML div class section p content here p div 这是创
  • 在固定大小的大正方形中创建动态等大小的小正方形网格

    我怎样才能在固定的大正方形内创建动态的等大小的正方形 尺寸应根据正方形的数量 这将是最通用的解决方案 使用CSSgrid根据子元素的总和 可计算列和行 JS解释 grid children length 计算以下孩子的数量grid div
  • 并发 hashmap 不需要同步 getter/setter 吗?

    如果我使用并发哈希图并且我有设置和获取值的方法 因为我使用并发哈希图 我需要使 getter 和 setter 同步吗 这是多余的吗 有一种设计更好吗 另外 没有同步的并发哈希图是否比具有同步 getter 和 setter 的哈希图更快