当前位置: 首页 > news >正文

jvm-证明cpu指令是乱序执行的案例

package jvm;/*** 证明cpu指令是乱序执行的** @author 1* @version 1.0* @description: TODO* @date 2024-07-19 9:31*/
public class T04_Disorder {private static int x = 0, y = 0;private static int a = 0, b =0;public static void main(String[] args) throws InterruptedException {int i = 0;for(;;) {i++;x = 0; y = 0;a = 0; b = 0;Thread one = new Thread(new Runnable() {@Overridepublic void run() {//由于线程one先启动,下面这句话让它等一等线程two. 读着可根据自己电脑的实际性能适当调整等待时间.//shortWait(100000);a = 1;x = b;}});Thread other = new Thread(new Runnable() {@Overridepublic void run() {b = 1;y = a;}});one.start();other.start();one.join();other.join();String result = "第" + i + "次 (" + x + "," + y + ")";//如果cpu是顺序指令执行的,那么上面两个线程,要么a=1则y=1或者b=1则x=1 也就是x和y不可能同时为0 除非 线程没有按照顺序执行if(x == 0 && y == 0) {System.err.println(result);break;} else {//System.out.println(result);}}}public static void shortWait(long interval){long start = System.nanoTime();long end;do{end = System.nanoTime();}while(start + interval >= end);}
}

执行结果:  第1661256次 (0,0)

证明了,cpu指令的确是乱序执行的;

http://www.lryc.cn/news/406011.html

相关文章:

  • 《流程引擎原理与实践》开源电子书
  • 谷粒商城实战笔记-52~53-商品服务-API-三级分类-新增-修改
  • uni-app 影视类小程序开发从零到一 | 开源项目分享
  • Python使用正则替换字符串
  • 每日一练,java03
  • 【机器学习】深入理解损失函数(Loss Functions)
  • python实现特征检测算法3
  • 软件更新的双刃剑:从”微软蓝屏”事件看网络安全的挑战与对策
  • Redis 主从搭建
  • LeetCode 129, 133, 136
  • macOS 环境Qt Creator 快捷键
  • 【C# WInForm】将TextBox从输入框设置为文本框
  • minio 服务docker配置
  • 开源模型应用落地-LangChain高阶-智能体探究-自定义agent(五)
  • 16_网络IPC4-数据传输
  • 怎样做好仓库管理工作?如何利用仓库管理系统进行有效管理?
  • PHP-显示所有错误信息
  • js修改hash的方法
  • 机械学习—零基础学习日志(高数10——函数图形)
  • Godot游戏制作 03世界构建1.0版
  • MySql性能调优05-[sql实战演练]
  • go-kratos 学习笔记(1) 安装
  • 蚂蚁集团推出EchoMimic:能通过音频和面部标志生成逼真的肖像动画视频
  • 量化机器人对市场趋势的反应速度
  • 深入指南:VitePress 如何自定义样式
  • 逃离的日常:自闭症孩子的课堂小插曲
  • LLM模型与实践之基于MindSpore的GPT2文本摘要
  • 【Android】使用视图绑定ViewBinding来代替findViewById
  • 字符的统计——423、657、551、696、467、535
  • pytest+allure