Предположим, что у меня есть следующие классы
Looper.java
class Looper {
boolean stop;
void loop() {
while(!stop) {
// do something
}
}
void stop() {
stop = true;
}
}
Launcher.java
class Launcher {
public static void main(String[] args) {
Looper looper = new Looper();
new Thread(() -> looper.loop()).start();
new Thread(() -> looper.stop()).start();
}
}
Допустимо ли это для компилятора / JIT / CPUпреобразовать этот Looper
класс следующим образом, чтобы цикл никогда не заканчивался?
class Looper {
boolean stop;
void loop() {
while(true) { // as stop is always false from the the thread that enters this method
// do something
}
}
void stop() {
stop = true;
}
}