-
java内存模型允许JVM将没有被volatile修饰的64位数据类型的读写划分为两次32位的读写操作来进行(例如double和long)
导致问题:可能会出现读取到"半个变量"的情况
解决方法:加volatile关键字
查看全部 -
synchronize和volatile的比较
查看全部 -
volatile适用场合
查看全部 -
使用ReentrantLock()对象进行加锁时,调用lock()方法开始unlock()释放
被加锁代码写在lock方法和unlock方法之间
查看全部 -
减少锁粒度
查看全部 -
A线程读取主内存number值为5
B线程读取主内存number值为5
A线程执行完number++操作将6强制刷新到主内存中
B线程执行完number++操作将6强制刷新到主内存中
两个线程执行了俩次number++,看结果的话只增加了1
查看全部 -
操作volatile变量的过程
查看全部 -
volatile实现可见性原理三
查看全部 -
volatile实现可见性原理二
查看全部 -
volatile实现可见性原理一
查看全部 -
读操作进行重排序后的结果
查看全部 -
进行代码重排序
执行结果result的值为0
查看全部 -
没有进行重排序
执行结果:result的值为3
查看全部 -
as-if-serial语义
查看全部 -
概念五:重排序(重新排序)
查看全部
举报
0/150
提交
取消