В Java я понимаю, что ключевое слово volatile
обеспечивает видимость переменных. Вопрос в том, является ли переменная ссылкой на изменяемый объект, а volatile
также обеспечивает видимость членов внутри этого объекта?
В приведенном ниже примере работает ли он, если несколько потоков обращаются к volatile Mutable m
и меняют value
?
Пример
class Mutable {
private int value;
public int get()
{
return a;
}
public int set(int value)
{
this.value = value;
}
}
class Test {
public volatile Mutable m;
}