Как получить доступ к статической переменной из многих потоков одновременно.Статическая переменная многопоточного доступа Java
Если у меня есть класс, как
Class A {
public static boolean FLG=false;
.....................
....................
}
И мне нужно, чтобы получить доступ к значению из потока 1, как
....................
public void run() {
boolean t1=A.FLG;
..................
}
и от нити 2 Мне нужно установить значение как
....................
public void run() {
A.FLG=true;
..................
}
Означает ли это нарушение памяти?. Если да, то какой рекомендуемый метод справиться с такой ситуацией ?.
Почему бы просто не использовать летучий? – Muel
@Muel, под редакцией. Спасибо :) –
Если переменная используется точно так, как это видно в примере кода. Поле может быть полностью незащищенным. Thread 2 установит его значение, и Thread 1 в конце концов увидит это изменение. Если чтение устаревших значений допустимо, 'volatile' может быть опущен, так как записи в booleans являются атомарными на 32-битных платформах. –