English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
volatile修飾符指示JVM,訪問volatile變量的線程應始終從內存中獲取數據。即線程不應該緩存volatile變量。
訪問易失性變量將同步所有在主存儲器中緩存的變數副本。可變變數只能應用於對象類型或私有類型的實例變數。易失性對象引用可為null。
public class MyRunnable implements Runnable { private volatile boolean active; public void run() { active = true; while (active) { // line 1 //一些代碼在這裡 } } public void stop() { active = false; // line 2 } }
儘管我們聲明數組為volatile,但數組的元素沒有volatile行為。
為解決此問題,Java提供了兩個類,即AtomicIntegerArray和AtomicLongArray,它們表示在(各自)變量上具有原子包裝的數組,這些數組的元素會自動更新。
也就是说،可以將這些類表示的數組的各個元素作為易變變數訪問。這些類提供get()
و}}set()
استخدام متغيرات لاسترجاع أو تخصيص قيمة لكل عنصر.
بما أن الطبقات الم封装ة الأتمومية يمكن استخدامها لأسعار النصائح والأعداد الطويلة، بينما يمكن استخدام النصائح الأخرى لجميع أنواع البيانات الأخرى، يجب إعادة تخصيص مرجع المصفوفة عند تخصيص عنصر جديد للمصفوفة.
volatile int[] myArray = new int[3]; myArray [0] = 100; myArray = myArray; myArray [1] = 50; myArray = myArray; myArray [2] = 150; myArray = myArray;