网易首页 > 网易号 > 正文 申请入驻

Java:Java内存模型支持测试多线程软件

0
分享至

  测试多线程 Java 接缝是不可能的。 错误取决于特定的时间,有时甚至取决于特定的处理器类型或 JVM。 但是 Java 有一个规范可以让我们测试多线程软件:Java 内存模型。

  Java 内存模型使我们能够执行多线程程序的所有线程交错,只要该程序是无数据竞争的。 它定义了自动检查程序是否包含数据竞争的规则。 所以我们可以使用两步法进行测试:第一步,我们执行所有线程交错。 在第二步中,我们检查测试是否包含数据竞争。

  什么是Java内存模型?

  Java内存模型是一种规范,它定义了当多个线程读写相同的内存位置时会发生什么。

  Java内存模型以下列方式回答了这个问题:

  如果一个程序没有数据竞争,那么该程序的所有执行看起来都是顺序一致的。

  顺序一致性意味着多线程程序的运行是不同线程的源代码语句的特定交错。因此,要执行一个顺序一致的程序,我们可以使用以下算法:选择一个线程,并执行该线程的当前语句。重复此操作,直到所有线程都被终止。

  但是Java程序只有在没有数据竞争时才是顺序一致的。当一个程序包含一个读和一个写或两个对同一存储位置的写,而这些写不是按照所谓的发生前顺序排序时,该程序就包含了数据竞争。像从volatile字段读取和写入这样的同步操作会在多个线程之间生成一个顺序,即先发生顺序。例如,对一个volatile变量的写操作发生在所有后续的volatile读操作之前。如果所有的内存访问都可以通过这种先发生后关系来排序,那么我们的程序就是无数据竞争的。

  Java内存模型的顺序一致性的较弱形式的优势在于,它允许JVM对生成的机器代码进行优化。这使得在处理器中进行缓存成为可能。这种较弱形式的顺序一致性意味着,当我们想要测试所有线程交错时,我们只需要考虑同步动作。

  Java内存模型如何支持多线程Java的测试?

  测试时,我们只需要考虑导致不同发生前顺序的线程交错。因此,我们计算测试运行的同步操作可以创建的所有订单。对于每个订单,我们执行一次线程交错,从而得到这个订单。

  在我们执行了所有这些线程交错之后,我们需要检查测试是否没有数据竞争。因此,我们检查每个多线程内存访问是否可以根据发生前的顺序进行排序。

  Java内存模型保证所有无数据竞争的程序顺序一致。这允许我们用两步的方法测试多线程程序。第一步,我们执行所有线程交错,第二步,我们检查数据竞争。这允许我们以系统的、可重复的方式测试多线程Java。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
干 部 任 前 公 示(2024)第92号

干 部 任 前 公 示(2024)第92号

锡望
2024-12-01 21:49:30
越南高铁计划尘埃落定,承建方花落谁家存悬念!

越南高铁计划尘埃落定,承建方花落谁家存悬念!

星辰故事屋
2024-12-02 19:10:23
88岁的作曲家谷建芬,被刀郎的《罗刹海市》“逼”出了律师函

88岁的作曲家谷建芬,被刀郎的《罗刹海市》“逼”出了律师函

七公子娱乐
2024-11-30 16:00:03
拜登赦免其子后,白宫发言人首次回应媒体质询!特朗普曾发文:滥用权力

拜登赦免其子后,白宫发言人首次回应媒体质询!特朗普曾发文:滥用权力

每日经济新闻
2024-12-03 06:49:05
朝鲜究竟有多牛?没钱就直接自己印美元,逼得老美都痛骂娘

朝鲜究竟有多牛?没钱就直接自己印美元,逼得老美都痛骂娘

华人星光
2024-12-02 15:41:30
澧县人大常委会原党组副书记、副主任、县孟姜垸砂管办原主任张华严重违纪违法被开除党籍和公职

澧县人大常委会原党组副书记、副主任、县孟姜垸砂管办原主任张华严重违纪违法被开除党籍和公职

常德融媒
2024-12-02 20:49:55
那年我偷家里三百块给同桌母亲治病,十年后我去相亲被她母亲拦住

那年我偷家里三百块给同桌母亲治病,十年后我去相亲被她母亲拦住

荷塘月色r
2024-11-30 09:52:24
许华升为儿子办满月宴!席开近30桌现场发钱,用茅台将儿子围起来

许华升为儿子办满月宴!席开近30桌现场发钱,用茅台将儿子围起来

裕丰娱间说
2024-12-02 22:20:55
林彪打印度有多狠?30分钟吃掉印军三个师,直言让印度从此消失

林彪打印度有多狠?30分钟吃掉印军三个师,直言让印度从此消失

朝暮荐
2024-12-03 03:21:34
大兴机场被北漂睡成“洗浴中心”,撕开当下社会最体面的一幕

大兴机场被北漂睡成“洗浴中心”,撕开当下社会最体面的一幕

这班我上够了
2024-11-30 13:50:03
长三角知政丨多地党政主官“抓足球”:这是“难而正确”的事

长三角知政丨多地党政主官“抓足球”:这是“难而正确”的事

澎湃新闻
2024-12-03 08:40:30
晚上跟日本朋友吃饭,说起越南希望转让高铁技术,他笑着说出事实

晚上跟日本朋友吃饭,说起越南希望转让高铁技术,他笑着说出事实

李博世财经
2024-12-02 16:01:28
四川金象前员工泄露公司技术秘密获刑5年半罚280万 二审驳回上诉维持原判

四川金象前员工泄露公司技术秘密获刑5年半罚280万 二审驳回上诉维持原判

红星新闻
2024-12-02 23:55:07
杨绛:一个家庭最大的悲哀,不是没钱,而是妈妈张口闭口这3句话

杨绛:一个家庭最大的悲哀,不是没钱,而是妈妈张口闭口这3句话

华人星光
2024-11-09 15:23:11
梦鸽李天一赴美不归?看到85岁李双江“现状”,原来杨洪基没说谎

梦鸽李天一赴美不归?看到85岁李双江“现状”,原来杨洪基没说谎

阿纂看事
2024-11-05 11:54:58
管晨辰微博已开启“一键防护” 此前遭海量网暴

管晨辰微博已开启“一键防护” 此前遭海量网暴

直播吧
2024-12-02 21:04:15
三名日本男子因在大街上用扩音器播放女子的呻吟声被日本警察逮捕

三名日本男子因在大街上用扩音器播放女子的呻吟声被日本警察逮捕

随波荡漾的漂流瓶
2024-12-02 18:00:03
巴拉圭外长称不接受对台“断交” 我外交部:没有任何谈判空间和妥协余地

巴拉圭外长称不接受对台“断交” 我外交部:没有任何谈判空间和妥协余地

人民资讯
2024-12-02 19:07:44
当孩子不尊重你、不理你时,不必翻脸,只需“乌鸦定律”就够了

当孩子不尊重你、不理你时,不必翻脸,只需“乌鸦定律”就够了

新东方家庭教育
2024-11-29 10:03:53
结束2年婚姻&12年恋情瓦尔加:我和佩莱已经决定分手

结束2年婚姻&12年恋情瓦尔加:我和佩莱已经决定分手

直播吧
2024-12-03 00:59:14
2024-12-03 11:07:00
粤嵌教育培训
粤嵌教育培训
粤嵌教育,IT人才孵化中心!
1617文章数 64关注度
往期回顾 全部

科技要闻

英特尔CEO基辛格“下课”,立即生效!

头条要闻

王昊被逮捕:搞权色交易 通过民间借贷获取大额回报

头条要闻

王昊被逮捕:搞权色交易 通过民间借贷获取大额回报

体育要闻

二轮秀场均20+ 他硬生生练成了CBA最强

娱乐要闻

黄子韬徐艺洋官宣结婚,超般配!

财经要闻

刘世锦:扩大消费需求要找准重点或痛点

汽车要闻

小米汽车:11月交付继续超2万辆 全年冲刺13万辆

态度原创

教育
亲子
艺术
公开课
军事航空

教育要闻

意外!一所中学招聘,将目标高校只确定为六所教育部直属院校

亲子要闻

妈妈去麻将馆看见爸爸带娃,宝宝不哭不闹坐在爸爸怀里

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

公开课

一块玻璃,如何改变人类世界?

军事要闻

古特雷斯就叙利亚局势发表声明

无障碍浏览 进入关怀版