【发布时间】:2019-12-25 09:43:06
【问题描述】:
我正在阅读一篇关于 Java Volatile 关键字的文章,有一些问题。 click here
public class MyClass {
private int years;
private int months
private volatile int days;
public void update(int years, int months, int days){
this.years = years;
this.months = months;
this.days = days;
}
}
udpate()方法写入三个变量,其中只有days是volatile的。
完整的 volatile 可见性保证意味着,当一个值被写入 days 时,线程可见的所有变量也会被写入主内存。这意味着,当一个值写入天时,年和月的值也会写入主存。
那么,“线程可见的所有变量”是什么意思? 是指线程栈中的所有变量吗? “线程可见”是什么意思?我怎么知道线程可以看到月份和年份?
【问题讨论】:
标签: java multithreading volatile