Допустим, у меня есть поток, работающий так:
private boolean working = true;
@Override public void run() {
working = true;
// do something
working = false;
....
}
и в моем основном потоке я постоянно выставляю состояние working с
while(threadClassObject.isWorking()) {
System.out.println(threadClassObject.isWorking());
}
будет ли это работать? Я попробовал этот пример и, кажется, он работает. Но может ли это привести к сбою? Что, например, произойдет, если поток находится в процессе изменения состояния работы, в то время как основной поток пытается прочитать его?