java并发hashmap

2024-04-13

这似乎是错误的。

        static ConcurrentHashMap k; //multiple threads have access to k
         X o = k.get("LL");
         o.a = 6;

如果多个线程同时访问 k,并获取 k("LL"),然后在没有 k.put("ll",o) 的情况下更新 (o.a = #),而不在 'o' 上同步,或者在 'k' 上同步,会发生什么情况?


ConcurrentMap 具有保证原子插入/删除和键/值对替换的条件操作。此外,访问 ConcurrentMap 会创建一个发生在之前 http://docs.oracle.com/javase/specs/jls/se5.0/html/memory.html#17.4.5关系,以便您可以对代码的顺序做出一定的保证。

在所提供的代码中,该行:

X o = k.get("LL");

访问键“LL”的当前 X 值。下一行修改 a 属性。在不知道X的实现的情况下,这是Java,所以我们知道这里没有方法调用。If(并且仅当)a 属性被标记为易失性时,随后访问“LL”处的 X 的代码才会将 a 值视为 6。如果它不是易失性的,则根本无法保证。他们可能会看到 6,特别是在 SMP x86 机器上,当时没有多少线程做太多事情。在生产中,在大型 NUMA 机器上,他们不太可能这样做。可变性会带来各种复杂性和困难。

一般来说,您会发现如果使用不可变的键和值,更容易推断出映射所处的状态。

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

java并发hashmap 的相关文章

  • 唯一索引或主键违规:“PRIMARY KEY ON PUBLIC.xxx”; SQL语句

    每当我的应用程序启动时 我都会收到以下错误消息 Caused by org h2 jdbc JdbcSQLException Unique index or primary key violation PRIMARY KEY ON PUBL
  • 菜单未显示在应用程序中

    由于某种原因 我的操作菜单在我的 Android Studio 应用程序中消失了 我正在按照教程学习如何创建 Android 应用程序 但最终遇到了这个问题 我正在使用 atm 的教程 http www raywenderlich com
  • 如何在日期选择器中设置不在当前月份的单元格的样式

    我目前正在为我的 JavaFX 应用程序制作注册表 问题是 当日期选择器中的单元格不在页面的月份上时 我想让该单元格变灰 让我们看看我当前的日期选择器 我的日期选择器 正如您所看到的 我希望下个月的日期 27 日 28 日 30 日以及 1
  • 如何使用 FileChannel 将一个文件的内容附加到另一个文件的末尾?

    File a txt好像 ABC File d txt好像 DEF 我正在尝试将 DEF 附加到 ABC 所以a txt好像 ABC DEF 我尝试过的方法总是完全覆盖第一个条目 所以我总是最终得到 DEF 这是我尝试过的两种方法 File
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • 在浏览器中点击应用程序时播放框架挂起

    我正在 Play 中运行一个应用程序activator run 也许 5 次中有 3 次 它会挂起 当我去http localhost 9000 它就永远坐在那里旋转 我看到很多promise timed out错误也 我应该去哪里寻找这个
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • OnClick 事件中的 finish() 如何工作?

    我有一个Activity一键退出Activity 通过layout xml我必须设置OnClick事件至cmd exit调用 this finish 效果很好 public void cmd exit View editLayout thi
  • Prim 的迷宫生成算法:获取相邻单元格

    我基于 Prim 算法编写了一个迷宫生成器程序 该算法是 Prim 算法的随机版本 从充满墙壁的网格开始 选择一个单元格 将其标记为迷宫的一部分 将单元格的墙壁添加到墙壁列表中 While there are walls in the li
  • 在具有相同属性名称的不同数据类型上使用 ModelMapper

    我有两节课说Animal AnimalDto我想用ModelMapper将 Entity 转换为 DTO 反之亦然 但是对于具有相似名称的一些属性 这些类应该具有不同的数据类型 我该如何实现这一目标 动物 java public class
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • 如何在 JFreeChart TimeSeries 图表上显示降雨指数和温度?

    目前 我的 TimeSeries 图表每 2 秒显示一个位置的温度 现在 如果我想每2秒显示一次降雨指数和温度 我该如何实现呢 这是我的代码 import testWeatherService TestWeatherTimeLapseSer
  • 使用 AWS Java SDK 为现有 S3 对象设置 Expires 标头

    我正在更新 Amazon S3 存储桶中的现有对象以设置一些元数据 我想设置 HTTPExpires每个对象的标头以更好地处理 HTTP 1 0 客户端 我们正在使用AWS Java SDK http aws amazon com sdkf
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • 运行 Jar 文件时出现问题

    我已将 java 项目编译成 Jar 文件 但运行它时遇到问题 当我跑步时 java jar myJar jar 我收到以下错误 Could not find the main class myClass 类文件不在 jar 的根目录中 因
  • 如何配置eclipse以保持这种代码格式?

    以下代码来自 playframework 2 0 的示例 Display the dashboard public static Result index return ok dashboard render Project findInv
  • android Accessibility-service 突然停止触发事件

    我有一个 AccessibilityService 工作正常 但由于开发过程中的某些原因它停止工作 我似乎找不到这个原因 请看一下我的代码并告诉我为什么它不起作用 public class MyServicee extends Access
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是
  • javax.persistence.Table.indexes()[Ljavax/persistence/Index 中的 NoSuchMethodError

    我有一个 Play Framework 应用程序 并且我was使用 Hibernate 4 2 5 Final 通过 Maven 依赖项管理器检索 我决定升级到 Hibernate 4 3 0 Final 成功重新编译我的应用程序并运行它

随机推荐

  • Windows XP 中的 Internet Explorer 8

    我亲眼目睹了 Internet Explorer 8 IE8 在 Windows XP 中的表现以及在 Windows Vista 7 中的表现 非常奇怪的是 对于 CSS 和 JavaScript 的某些方面 也许对于其他元素也是如此 I
  • android studio 2.2.1 无法解析符号 *

    我过去使用android studio 2 1 1 昨天我下载了android studio 2 2 1 但发现无法解析符号错误 现在我使用android studio 2 1 1 一切正常 我已经尝试过 1 File gt Invalid
  • WordPress 使用 GD 图像引擎以编程方式将图像转换为 WebP 格式

    有许多 PHP 解决方案和 WP 插件 它们都带有我不想要 不需要的附加选项 即如何提供转换后的文件 存储它们的位置等 我不需要所有这些 并且正在寻找使用 GD 的纯简单代码 我不想使用插件 谢谢 编码应该什么时候发生 任何时候你知道这是钩
  • 实体框架“意外的连接状态”异常

    经过三个小时的调试和搜索 我希望这里有人能找到答案 如果我连续快速调用以下函数 例如间隔 System InvalidOperationException 意外的连接状态 使用包装提供程序时 请确保在包装的 DbConnection 上实现
  • 错误:错误域=NSURLErrorDomain代码=-1001“请求超时。”

    我正在 Xcode 6 1 iOS 8 1 中开发一个应用程序 该应用程序直到 2 天前都工作得很好 但今天当我执行它时 我在网络服务中遇到了错误 错误打印在下面 错误 错误域 NSURLErrorDomain代码 1001 请求计时 出
  • 如何使用 Java 8 可选,在三个都存在的情况下执行操作?

    我有一些使用 Java 可选的 简化的 代码 Optional
  • SSRS 计算行组和列组的计数

    我正在构建案例结果报告 其中对行组和单列分组进行父子分组 Parent Row Group Location 子行组 结果 列组 月份 报告中贯穿的是一年中的月份 报告中贯穿的是位置以及给定月份中该位置的不同结果细分 看起来像这样 Jan
  • Twitter API:获取关注者 +99

    使用 twitter API 和 OAuth 如果我要调用用户关注者 状态 关注者 我将仅返回 99 个结果 有没有办法让我返回 99 然后从关注者 100 开始再次调用 然后循环这种调用方式 直到返回关注者总数 或者只是返回所有关注者 您
  • Android 日历视图 - 将滚动方向更改为垂直

    我在导航抽屉内的应用程序中使用日历视图来选择不同的日期 除了在日历视图上向左滑动以到达下个月 向右滑动正确更改上个月 之外 一切正常 因为这是关闭抽屉的滑动手势 是否可以将日历的滚动方向更改为垂直而不是水平 我想实现这一点 这样用户就不必严
  • JavaFX - 以编程方式设置目标路径以直接将节点打印到 pdf 文件

    我想使用 Microsoft Print to PDF 打印机将节点打印到 pdf 文件 假设 Printer 对象已经被提取 我有下一个功能 该功能运行良好 public static void printToPDF Printer pr
  • Canvas 类绘图基元的除法独立性

    Android Canvas 类支持一组丰富的绘图基元 圆 线等 我有一个应用程序使用这些图元来绘制一些统计数据 阅读完相关说明后http developer android com reference android graphics C
  • 在node_modules/dojo/dojo.js的resolveDepMaps()中出现“TypeError: deps.map is not a function”

    我一直在更改我的组织的底层基础设施 以将我们的自动化测试从使用单独的 Web 服务器在浏览器客户端中运行切换到在测试运行程序 实习运行程序 中运行 在测试运行器环境中 一切进展顺利 我解决了很多问题 但随后繁荣起来 有人删除了一个新的单元测
  • 如何创建一个值超过允许的最大整数的枚举?

    我正在 C 中创建一个枚举 以使用二进制标志创建一个有限状态机 看起来像 enum VStates NEUTRAL 0x00000000 000000 Physical Status DRY 0x00000001 000001 WET 0x
  • Java Web 服务 - Axis 是必要的吗?

    Is AXIS or CXFJava Web 服务必需吗 这一切都可以通过 JDK 1 6 完成吗 Java Web 服务需要 AXIS 或 CXF 吗 不 虽然Axis2 http ws apache org axis2 是使用 Web
  • 如何设计“冰淇淋三明治”选项卡之间的分隔线样式?

    我将以下样式与一组九个补丁图像一起使用 在一些冰淇淋三明治选项卡的底部创建一条红线 而不是标准的蓝线
  • 在c#中将未命名的json数组反序列化为对象

    想知道如何在 C 中反序列化以下字符串 access token thisistheaccesstoken 如果 json 是 我知道该怎么做 array access token thisistheaccesstoken 我会这样做 pu
  • java 注释:用 xml 文件覆盖注释的库

    Java 有注释 这很好 然而 一些开发人员认为最好使用 xml 文件用元数据注释代码 其他开发人员更喜欢注释 但会使用元数据覆盖源代码中的注释 我正在编写一个使用注释的 Java 框架 问题是 是否有一种标准方法来定义和解析 xml 文件
  • 处理回调

    我在 Objective C 类中有一个方法 它有 2 个用 C 编写的回调函数 类指针 即self被传递给这些函数作为void 在 C 函数中 我创建一个类型为 class 的指针并分配void 范围 第一个回调函数执行成功 但是void
  • 使用 FFMPEG 播放音频

    我一直在尝试使用 NDK 将 FFMPEG 用于播放音频 移植到 Android 中 我取得了一些成功 我可以构建 FFMPEG 并通过 NDK 链接它 我可以打电话avcodec decode audio3 并解码给定的音频文件 所以这里
  • java并发hashmap

    这似乎是错误的 static ConcurrentHashMap k multiple threads have access to k X o k get LL o a 6 如果多个线程同时访问 k 并获取 k LL 然后在没有 k pu