Это абсолютно поточно ... ... до тех пор, как вы можете убедиться, что список не изменяется. Даже добавление элементов приводит вас к «неопределенной» территории (хотя в зависимости от реализации она может просто работать).
Итак, только для чтения - да. Чтение + манипуляция: нет.
Примечание: это нормально менять элементы в lsit, если список [5], например, является одним и тем же объектом. В списке все равно. Не сказать, что это сработает - потому что в зависимости от того, что вы измените здесь, это будет ваш контракт с объектами в списке. Для ints вам явно не нужно их обновлять.
Это зависит от реализации списка, в основном. 'ArrayList' не является потокобезопасным,' CopyOnWriteArrayList' является ... –
Если вы только получаете элементы из списка, то его ОК. Если вы также меняете список (установка, добавление, удаление), вы должны блокировать сбор –
Это зависит от того, что вы делаете. Параллельные _reads_ в порядке. – SLaks