CSDN热搜
你是否曾经遇到过:明明单线程运行正常的代码,在多线程环境下就出现各种诡异问题?一个线程修改了变量,另一个线程却看不到?代码的执行顺序好像和写的不一样?今天,就让我们彻底揭开Java内存模型的神秘面纱!
同一个线程内,前面的操作对后面的操作立即可见。
解锁操作happens-before后续的加锁操作。
volatile写happens-before后续的volatile读。
A → C → B,因此 A → B。
A → B → C,因此 A → C。
使用道具 举报
本版积分规则 回帖并转播 回帖后跳转到最后一页
程序园优秀签约作者
0
粉丝关注
16
主题发布