Как объявить элементы массива, энергозависимые в Java?

Есть ли способ объявить элементы массива volatile в Java? Т.е.

volatile int[] a = new int[10];

объявляет ссылку на массив volatile, но элементы массива (например. a[1]) все еще не энергозависимы. Таким образом, я ищу что-то как

volatile int[] a = new volatile int[10];

но это не прокладывает себе путь. Действительно ли это возможно вообще?

35
задан Joonas Pulakka 10 February 2010 в 10:53
поделиться

2 ответа

Используйте AtomicIntegerArray или AtomicLongArray или AtomicReferenceArray

Класс AtomicIntegerArray реализует массив int, к отдельным полям которого можно получить доступ. с помощью методов класса get () и set () . Вызов arr.set (x, y) из одного потока затем гарантирует, что другой поток, вызывающий arr.get (x) , прочитает значение y (до тех пор, пока другое значение не будет считано в позицию Икс).

См .:

30
ответ дан 27 November 2019 в 15:40
поделиться

Нет, можно ' t сделать элементы массива непостоянными. См. Также http://jeremymanson.blogspot.com/2009/06/volatile-arrays-in-java.html .

6
ответ дан 27 November 2019 в 15:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: