2012-05-26 26 views

Trả lời

11

Trước hết, không có được bảo đảm cách hiển thị bộ đệm ẩn do các biến không dễ bay hơi. JVM của bạn có thể rất tốt với bạn mọi lúc và xử lý hiệu quả mọi biến động dễ bay hơi.

Điều đó đang được nói, có một vài cách để tăng xác suất có chuỗi lưu trữ các phiên bản riêng của một biến không biến động. Dưới đây là một chương trình cho thấy tầm quan trọng của ổn định trong hầu hết các máy Tôi đã thử nghiệm nó trên (phiên bản chuyển thể từ here):

class Test extends Thread { 

    boolean keepRunning = true; 

    public void run() { 
     while (keepRunning) { 
     } 

     System.out.println("Thread terminated."); 
    } 

    public static void main(String[] args) throws InterruptedException { 
     Test t = new Test(); 
     t.start(); 
     Thread.sleep(1000); 
     t.keepRunning = false; 
     System.out.println("keepRunning set to false."); 
    } 
} 

Chương trình này sẽ thường chỉ ra

keepRunning set to false. 

và tiếp tục chạy. Làm cho keepRunning dễ bay hơi khiến nó in

keepRunning set to false. 
Thread terminated. 

và chấm dứt.

+2

+1. Câu trả lời tương tự như của tôi, nhưng sớm hơn và phức tạp hơn –

+2

Hài hước, nếu bạn thực hiện vòng lặp làm điều gì đó, ví dụ sẽ không còn hoạt động nữa (ví dụ: 'System.out.println (". ");' Inside 'while (keepRunning)' – Miquel

Các vấn đề liên quan