Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa dễ bay hơi và thoáng qua trong java

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);
   }
}