Một từ khóa dễ bay hơi được sử dụng trong môi trường đa luồng nơi hai luồng đọc và ghi cùng một biến đồng thời. Từ khóa biến đổi sẽ chuyển các thay đổi trực tiếp vào bộ nhớ chính thay vì bộ nhớ cache của CPU.
Mặt khác, từ khóa thoáng qua được sử dụng trong quá trình tuần tự hóa. Các trường được đánh dấu là tạm thời không thể là một phần của quá trình tuần tự hóa và giải mã hóa. Chúng tôi không muốn lưu giá trị của bất kỳ biến nào thì chúng tôi sử dụng từ khóa tạm thời với biến đó.
Sr. Không. | Phím | Dễ bay hơi | Thoáng qua |
---|---|---|---|
1 | Cơ bản | Từ khóa biến động được sử dụng để chuyển các thay đổi trực tiếp vào bộ nhớ chính | Từ khóa tạm thời được sử dụng để loại trừ biến trong quá trình tuần tự hóa |
2. | Giá trị mặc định | Volatile không được khởi tạo với giá trị mặc định. | Trong quá trình giải mã hóa, các biến tạm thời được khởi tạo với giá trị mặc định |
3 | Tĩnh | Volatile có thể được sử dụng với một biến tĩnh. | Không thể sử dụng tạm thời với từ khóa tĩnh |
4 | Cuối cùng | Volatile có thể được sử dụng với từ khóa cuối cùng | Không thể sử dụng tạm thời với từ khóa cuối cùng |
Ví dụ về Tạm thời
// A sample class that uses transient keyword to // skip their serialization. class TransientExample implements Serializable { transient int age; // serialize other fields private String name; private String address; // other code }
Ví dụ về dễ bay hơi
class VolatileExmaple extends Thread{ boolean volatile isRunning = true; public void run() { long count=0; while (isRunning) { count++; } System.out.println("Thread terminated." + count); } public static void main(String[] args) throws InterruptedException { VolatileExmaple t = new VolatileExmaple(); t.start(); Thread.sleep(2000); t.isRunning = false; t.join(); System.out.println("isRunning set to " + t.isRunning); } }