java 内存同步_Java中的硬件事务性内存,或者为什么同步将再次变得很棒

java 内存同步

总览

硬件事务内存有可能允许多个线程同时以推测方式访问相同的数据结构,并使缓存一致性协议确定是否发生冲突。 HTM旨在为您提供细粒度锁定的可伸缩性,粗粒度锁定的简单性以及几乎没有锁定的性能。 如果JVM支持,则您的程序或库是使用过程粒度锁定编写的,这意味着您的应用程序只需很少的更改即可扩展到更多的内核。

尽管在C和C ++中添加对此的支持并非易事,但可以在不更改字节码的情况下添加对JVM生成的本机代码的支持。

简而言之,这可以允许许多线程以推测方式并发地执行锁的同步块,甚至并发写入,并且处理器可以确定这是否是问题,然后重复执行该块,直到没有问题为止。

什么是硬件事务内存,它将花费多少?

硬件事务性内存已经存在了一段时间,但直到最近才成为主流。 随着英特尔为其第四代i3 / i5 / i7处理器(Haswell)和其E3-1200 v3(最多4核,一个插槽ATM)系列处理器中的某些处理器提供支持,新的基于Intel的计算机可广泛使用。 可能是在今年下半年或明年,我们才能看到更多的核心,这意味着HTM将会真正发挥作用。 AFAIK,AMD计划很快添加此功能。

顺便说一句,Azul的Vega系统已经使用了这项技术已有近十年的时间,我希望Azul最适合首先在JVM中实现该技术。

您将购买的硬件(也许已经购买)将完成此任务。 许多新型号的笔记本电脑都具有Haswell处理器,因为它们显着改善了功耗。

如何运作?

Java中经常使用同步块,以防万一。 为了简化代码,这些锁通常比最佳锁要粗糙得多。例如,对于任何操作,Hashtable锁整个对象/映射,而具有精细锁定的ConcurrentHashMap锁。 编写细粒度锁定很难正确,因此更容易出错。 硬件事务存储的目标是支持过程粒度锁定,但要获得精细粒度锁定的好处。 这对于不优化代码的代码特别有用。

private final Map map = new HashMap<>(); public synchronized PooledObject acquireObject(String key) {PooledObjectobject = map.get(key);if (object == null)map.put(key, object = new PooledObject());return map;
}

您可能会想到这种情况

  • 只看地图
  • 更新地图,但是在不同的地方,例如不同的键。
  • 很少尝试一次在两个线程中更新同一密钥。

您想要的是

  • 线程之间的并发执行。
  • 与没有锁定的代码相比,开销很小。
  • CPU或JVM可以完成所有工作来优化此功能,即您不必更改代码。

如果没有HTM,则即使大多数情况是读取操作,同步块也需要获得锁并强制执行序列化访问。

使用HTM,字节码可以变成伪码,像这样

public PooledObject acquireObject(String key) {int code;do {xbegin();PooledObjectobject = map.get(key);if (object == null)map.put(key, object = new PooledObject());return map;} while((code = xend()) == RETRYABLE);if (code != DONE) {// take corrective action such as// obtain a normal lock and repeat}
}

XEND指令划定了检查缓存中的推测性读集和写集的终点,以查看其中是否有被其他CPU /线程修改过的任何缓存行。 如果不是,则所做的更改将被提交。 否则,将放弃所有更改,并且可以重复循环。

注意:回滚事务意味着撤消更改,甚至可能意味着回滚没有明显副作用的对象创建。 如果确实有副作用,则可以使用XABORT指令来触发事务中止,并且需要运行后备代码。

比较和交换限制为64位,这些事务的限制是多少?

限制是您可以在L1缓存中存储的行数。 最多32 KB。 如果您有超线程,则可能只有一半,即16 KB。 同样,L1缓存是8路关联的,因此在最坏的情况下,散列到同一存储桶的9条缓存行可能导致事务失败。 (带有超线程的情况更少)不过,它比CAS 64位或128位的2CAS高得多,并且灵活得多。

使用后退编写此事务锁定结构,以使用C之类的语言添加样板和重复代码。

结论

这种模式的优点是可以将其应用于已经编译并可以作为开源库使用的Java代码。 与需要进行大量修改才能利用此功能的C代码不同,Java程序无需重新编译即可利用HTM。 我们需要的是更改JVM。

注释(对我之前所说的内容进行了一些更正/澄清)

为了我; 我认为“酷”技术引起了广泛的兴趣,即使没有证明广泛的实用性。 我相信,在主流JVM中实现此功能将挑战甚至是经验丰富的开发人员“了解”多线程编程的知识。

虽然某些Haswell处理器中提供了Intel TSX,但并非所有Haswell处理器中都提供了Intel TSX。 您应该在ARK上与Haswell进行联系,并查看Intel TSX-NI是Yes

已经注意到,这对于调优的代码可能没有太大的区别。 英特尔TSX的设计师Ravi Rajwar在QCon SF 2012上的主题为 “ 机械同情”的主题 是“英特尔的下一代微体系结构代号Haswell ”。 如果您看一下第29页,它向我暗示,细粒度的代码无论如何都将在内核之间很好地扩展,并且不会获得太多收益。 TSX可能会帮助您的是逐步锁定。

有关更多技术细节,我建议您阅读Gil Tene在机械同情小组上的帖子 。 与我见过的任何人相比,他在调优JVM以支持HTM方面具有第一手经验。

参考资料

  • 投机锁定:打破规模障碍(JAOO 2005),由阿祖尔( Azul)的吉尔·特内(Gil Tene)撰写。
  • Sun Microsystems的David Dice,Yossi Lev,Mark Moir,Daniel Nussbaum,Marek Olszewski 的商业硬件事务存储实现的早期经验(2009年10月) 。
  • Wikipedia上的事务同步扩展
  • 基准:SiSoftware的Haswell的TSX和内存事务处理吞吐量(HLE和RTM)
  • 享受来自英特尔的英特尔®事务同步扩展的乐趣
  • 事务性内存支持:英特尔的speculative_spin_mutex
  • Johan De Gelas讲解了Intel Haswell事务同步扩展 。

参考: Java中的硬件事务性内存,或者为什么同步将变得凉爽 ,我们的JCG合作伙伴 Peter Lawrey在Vanilla Java博客上发表了文章。

翻译自: https://www.javacodegeeks.com/2014/02/hardware-transactional-memory-in-java-or-why-synchronized-will-be-cool-again.html

java 内存同步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像的灰度级数越多越好_MATLAB-数字图像处理 图像直方图归一化

图像直方图归一化图像直方图概念&#xff1a;图像直方图是反映一个图像像素分布的统计表&#xff0c;其实横坐标代表了图像像素的种类&#xff0c;可以是灰度的&#xff0c;也可以是彩色的。纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比。图像是由像…

POE交换机隐藏指标是什么?

POE交换机有一个非常重要的隐藏指标&#xff0c;只有大神才知道&#xff01;我只告诉您一次哦&#xff01;记住喽&#xff01;接下来跟着飞畅科技的小编一起来看看POE交换机隐藏指标是什么吧&#xff01; POE交换机隐藏指标是什么&#xff1f; POE交换机一个非常重要的隐藏指标…

【渝粤教育】电大中专新媒体营销实务 (11)作业 题库

1.第四媒体发展到宽带互联网阶段成为&#xff08; &#xff09; A.网络新媒体 B.移动新媒体 C.数字新媒体 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;未作答 2.新媒体形式是指新媒体的使用模式、变现形式与应用形式。该说法&#xff08; &#xff09; A.正确 B.错…

JDK 13:什么是AggressiveOpts?

JVM 11中已弃用Java VM标志-XX:AggressiveOpts [请参见JDK-8199777和JDK-8199778 ]“因为其行为是不明确的。” JDK-8199778的“问题”部分进一步说明了&#xff08;我添加了重点 &#xff09;&#xff1a; AggressiveOpts已被用作实现各种实验性能功能的包罗万象的方法&#…

【渝粤教育】电大中专消费者行为学 (3)作业 题库

1.消费行为学的研究对象是市场商品交换活动中消费者各种心理现象和行为的产生、发展及其规律。主要表现在以下哪几方面&#xff08;&#xff09; A.消费活动中营销环境 B.以上选项全选 C.消费者行为的发展变化趋势 D.消费者在消费过程中的行为和规律 E.消费者在购买行为中的心理…

擦地机器人修理_自带眼睛还有嘴,喷水式擦地机器人效果实测

小时候家里大扫除时&#xff0c;我最喜欢抢着扫把扫地&#xff0c;因为扫地相对比较轻松&#xff0c;快速扫完灰尘和垃圾就能跑出去玩。而擦地板相比扫地就麻烦多了&#xff0c;大面积的地板需要蹲下来一块一块擦&#xff0c;还要来回清洗擦布&#xff0c;现在父母年龄大了&…

PoE交换机不供电了该怎么办?

交换机供电方式有很多&#xff0c;有集中供电&#xff0c;独立供电&#xff0c;220V交流电供电&#xff0c;PoE供电&#xff0c;随着不同场合的使用&#xff0c;特别是poe交换机使用非常多&#xff0c;但是出现的问题也不少。其中比较常见的就是PoE交换机供电突然不供电了&…

【渝粤教育】电大中专电大中专沟通技巧考试考核试题 (2)作业 题库

1可以通过&#xff08; &#xff09;的方法来对抗讲话时的紧张感。 A心理暗示 B自我鼓励 C运用合适的肢体语言 D以上方法均可 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2以下说法正确的是&#xff08; &#xff09; A沟通要有明确的目标 B沟通不需要形成协议 …

pv实现前趋图_Excel 数据透视图实现简易交互式数据面板

美国Ebay公司成立于1995年的圣何塞&#xff0c;是一家可让全球民众上网买卖物品的线上拍卖及购物网站。本文将结合Ebay&#xff08;某类体育用品的&#xff09;在线拍卖数据&#xff0c;主要使用Excel数据透视表为工具&#xff0c;来实现简易的交互式数据面板以求对数据进行可视…

poe交换机标准与非标准的区别介绍

POE指的是在现有的以太网Cat.5布线基础架构不作任何改动的情况下&#xff0c;在为一些基于IP的终端&#xff08;如IP电话机、无线局域网接入点AP、网络摄像机等&#xff09;传输数据信号的同时&#xff0c;还能为此类设备提供直流电的技术&#xff0c;就是支持以太网供电的交换…

【渝粤教育】电大中专电子商务网站建设与维护 (7)作业 题库

1.阿里巴巴是于1999年创立的&#xff08; &#xff09;的网上贸易市场平台。 A.零售商对消费者 B.企业对消费者 C.企业对企业 D.企业对零售商 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;未作答 2.阿里巴巴网站的不足不包括&#xff08; &#xff09; A.“诚信通”…

【渝粤教育】电大中专药物分析技术基础 (2)作业 题库

1.《中国药典》规定“称定”时&#xff0c;指称取重量应准确至所取重量的 A.10% B.1.95&#xff5e;2.05g C.百分之一 D.1.5&#xff5e;2.5g E.千分之一 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;未作答 2.2℃&#xff5e;10℃指 A.密闭 B.密封 C.阴凉处 D.冷处…

input不可编辑属性_谁不喜欢图文并茂呢:基于多模态信息的属性抽取

0. 前言最近做属性抽取&#xff0c;并且基于多模态信息&#xff08;文本图片&#xff09;那种&#xff0c;然后发现了一个比较经典的论文“Multimodal Attribute Extraction”。正好就顺着这个论文的思路&#xff0c;捋一下这个任务&#xff0c;复现一下&#xff0c;再记录一下…

多维柔性作业调用_摆脱困境:从预定作业中调用安全方法

多维柔性作业调用假设我们已经实现了一个Spring支持的应用程序&#xff0c;并使用Spring Security的方法安全性表达式对其进行了保护 。 我们的下一个任务是使用安全方法实施计划作业。 更具体地说&#xff0c;我们必须实现一个计划的作业&#xff0c;该作业从我们的服务类中获…

HDMI高清光端机产品介绍

HDMI高清光端机对视频音频发布等起到传输作用&#xff0c;HDMI光端机由发送器和接收器组成&#xff0c;能通过单根光纤把计算机主机的音频&#xff0c;视频&#xff0c;USB延长到远端&#xff0c;用户可以在远端实时收听到电脑主机的图像和声音&#xff0c;并使用电脑控制。接下…

【渝粤教育】电大中专计算机职业素养 (14)作业 题库

1曾经的一项调查发现一些企业业绩不好&#xff0c;客户流失的最重要的原因是&#xff08;&#xff09;。 A企业产品价格不好 B企业员工素养达不到要求 C企业产品质量问题 D企业管理问题 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2职业素养是人类在社会活动中要…

【渝粤教育】电大中专跨境电子商务理论与实务 (29)作业 题库

1在按照交易主体类型中&#xff0c;&#xff08; &#xff09;面对的最终客户为企业或集团客户&#xff0c;提供企业、产品、服务等相关信息。 AB2B跨境电商或平台 BB2C跨境电商或平台 CC2C跨境电商或平台 DO2O跨境电商或平台 正确 正确答案&#xff1a;左边查询 学生答案&…

全局变量求平均分最高分最低分_想去江苏读大学,2021届山东考生需要多少分?...

点击链接查看详情&#xff1a;https://mp.weixin.qq.com/s/A1-e97_D4jbC_BRJtPIN2A​mp.weixin.qq.com江苏省2020年在山东普通批次本科招生66所院校。1027个专业&#xff1b;共4310人&#xff0c;最低分南通理工学院的船舶与海洋工程专业&#xff0c;464分&#xff0c;位次2437…

Thymeleaf的Spring数据

介绍 今天&#xff0c;我将讨论更具体的问题。 这次没有设计模式或算法&#xff1a;-)。 我们并不总是从头开始设计软件组件。 通常&#xff0c;我们必须尝试使现有软件组件协同工作。 Spring Boot是Java世界上最好的免费软件之一。 它解决了Spring的许多配置问题。 它非常灵活…

如何有效维护PDH光端机的常见故障?

众所周知&#xff0c;在PDH光端机的使用过程中&#xff0c;出现的故障可分为永久性故障和间断性故障。而永久性故障是指反映告警一直保持&#xff1b;间断性故障则是指故障时有时无&#xff0c;有时还可自动恢复。但无论是哪种故障&#xff0c;都与传输网有着密不可分的关系。接…