Java多线程 happens-before的使用案例: 只使用一个volatile保证可见性

happens-before的使用案例

如下的
Java多线程 JMM之可见性demo
文章中, 解决可见性方法使用的是两个volatile
https://javaweixin6.blog.csdn.net/article/details/108419450
主要是用于解决如下所示的第四种情况, 由于a的不可见性导致的.
Java多线程 happens-before的使用案例: 只使用一个volatile保证可见性_第1张图片此时加一个volatile就能保证 a和b的可见性.
b等于3的时候, a也一定是等于3的, 因为对于a的操作, 是由b的volatile保证可见的.
b加了volatile之后, 读取b的时候, 就能看到对于修改b的所有的操作, 所有的操作中, 就包括了等于3
Java多线程 happens-before的使用案例: 只使用一个volatile保证可见性_第2张图片
Java多线程 happens-before的使用案例: 只使用一个volatile保证可见性_第3张图片

你可能感兴趣的:(Java多线程基础与核心)