Modifica un valore che viene utilizzato per determinare quando un ciclo while termina in un thread separato.
Non voglio sapere come farlo funzionare. Se accedo alla prova variabile solo attraverso sincronizzate getter/setter funziona come previsto ..Strano comportamento in Java con accesso non sincronizzato in un programma di multithreading
mi sarei aspettato, se qualche lettura/scrittura comandi vengono persi a causa di concorrenza il programma a volte non termina, ma non mai lo fa. Ecco cosa mi confonde ..
Mi piacerebbe sapere perché il programma non termina mai, senza il comando di stampa. E vorrei capire perché la stampa comando cambia nulla ..
public class CustomComboBoxDemo {
public static boolean test = true;
public static void main(String[] args) {
Thread user =new Thread(){
@Override
public void run(){
try {
sleep(2000);
} catch (InterruptedException e) {}
test=false;
}
};
user.start();
while(test) {
System.out.println("foo"); //Without this line the program does not terminate..
}
}
}
Vedere: [Il loop non visualizza il valore modificato senza un'istruzione print] (https://stackoverflow.com/questions/25425130/loop-doesnt-see-changed-value-without-a-print-statement) – Boann