Java多线程 volatile适用的场景:触发器

volatile适用的场景:触发器

volatile适用的场景:触发器. 用作刷新之前变量的触发器 .

在这篇关于可见性这篇的文章中, 有如下的代码. 提到只用一个volatile就能保证a和b的可见性.
https://javaweixin6.blog.****.net/article/details/108424008
但是假如, 除了有变量a , 在b=0这个操作之前, 还有其他的很多变量, 例如下图的, abc abcd等变量. 那么在print方法的判断b=0时, 由happens-before原则也能保证其他变量的赋值完成. 此时变量b充当了触发器的角色.
Java多线程 volatile适用的场景:触发器
如下的一个伪代码中, 也说明了volatile作为触发器的场景.
线程A在执行完了一系列的配置操作后, 给volatile修饰的变量initialized赋值了true.
线程B在判断initialized 如果为false则会一直休眠, 直到initialized为true,才会走下面的代码, 并且使用线程初始化的一些配置. 此时 volatile修饰的变量initialized 作为了触发器.
Java多线程 volatile适用的场景:触发器