老师,这样理解volatile对不对
来源:12-14 保证可见的规则

weixin_慕神6429481
2020-04-27
volatile我现在理解是
修改volatile变量时会强制将修改后的值刷新的主内存中。
修改volatile变量后会导致其他线程工作内存中对应的变量值失效。因此,再读取该变量值的时候就需要重新从读取主内存中的值。
但是,是怎么保证的第二个线程就一定能看到第一个线程执行的结果呢,是第二个线程知道某一个线程正在操作这个volatile变量,等待他写入后才会去读取吗,相当于一个轻量级的synchronized吗?
写回答
1回答
-
悟空
2020-04-27
你理解的是对的。
第二个线程并不是等第一个线程写完后才读取,而是根据具体两个线程的执行时机的先后决定,如果第二个线程先读,那就是还没修改的值,因为第一个线程还没执行。
volatile可以理解为是一个轻量级的synchronized。
022020-04-27
相似问题