请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问i++到底是3步还是两步

我看网上说i++有说只有2步的use,assign

有些说有三步load,use,assign

正在回答 回答被采纳积分+3

1回答

翔仔 2019-10-24 00:39:16

 同学好,会经历

(1) 从主存复制变量到当前工作内存 
 (2) 执行代码,改变共享变量值 
 (3) 用工作内存数据刷新主存相关内容

这三步

0 回复 有任何疑惑可以回复我~
  • 提问者 厥~~~ #1
    懂了确实是三步。但是这3步什么时候会出现多线程并发访问下保证不了原子性的操作呢。
    回复 有任何疑惑可以回复我~ 2019-10-24 11:54:31
  • 翔仔 回复 提问者 厥~~~ #2
    因为有可能存在线程A和线程B同时拿到值为1的i,然后调用++ 都变成了2,随后写回主存均为2的情况,其实按理来说是加了两次,应该是3才对
    回复 有任何疑惑可以回复我~ 2019-10-25 01:11:40
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信