Tôi thay đổi giá trị được sử dụng để xác định khi nào một vòng lặp while kết thúc trong một chuỗi riêng biệt.
Tôi không muốn biết cách làm việc này. Nếu tôi truy cập thử nghiệm biến chỉ thông qua đồng bộ getters/setters nó hoạt động như mong đợi ..Hành vi lạ trong Java với truy cập không được đồng bộ hóa trong chương trình đa luồng
tôi lại có thể ngờ, nếu một số đọc/ghi lệnh bị mất do đồng thời chương trình đôi khi không chấm dứt, nhưng nó không bao giờ làm. Đó là điều gây nhầm lẫn cho tôi ..
Tôi muốn biết tại sao chương trình không bao giờ chấm dứt mà không có lệnh in. Và tôi muốn hiểu lý do tại sao lệnh in thay đổi bất cứ điều gì ..
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..
}
}
}
Xem: [Vòng lặp không thấy giá trị thay đổi mà không có bản in] (https://stackoverflow.com/questions/25425130/loop-doesnt-see-changed-value-without-a-print-statement) – Boann