iyuks 2021-04-06 06:58 采纳率: 84.3%
浏览 77
已结题

volatile禁止指令重排

1.一段代码能生成多行指令,比如说Student s = new Student("jack");创建Student的过程中,包括开辟空间,给成员变量赋值,给s变量一个指针这几步,禁止指令重排意思是禁止这个这几个指令乱排序吗?

2.另一种是int a = a+b; int c = b+1;a在成员位置,并且a使用了volatile修饰,这个时候int c = b+1;就不会跑到 int a = a+b;之前执行了吗

这两种情况,禁止指令重排都会生效吗? 

 

  • 写回答

1条回答 默认 最新

  • CSDN专家-三岁丫 2021-04-06 08:46
    关注

    是的,你的理解基本没啥问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    CSDN专家-三岁丫 2021-04-06 08:47

    不过创建对象的三个步骤,应该是 开辟空间,创建对象,返回对象。

    回复
    iyuks 回复 CSDN专家-三岁丫 2021-04-06 08:59

    意思是这两种情况都会生效吗

    回复
    iyuks 回复 CSDN专家-三岁丫 2021-04-06 09:00

    前两天看的马士兵的视频,他说的是分配空间,给成员变量赋值,再给s变量一个引用

    回复
    展开全部4条评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 9月23日
  • 已采纳回答 9月16日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部