Какой смысл потокобезопасности Collections.synchronizedList если ее все равно нужно синхронизировать при итерации. Вот CopyOnWriteArrayList не нужно синхронизировать + он никогда не бросает ConcurrentModificationException. Если можно, пример где Collections.synchronizedList имеет смысл использовать взамен обычного ArrayList.
Collections.synchronizedList в сравнении с ArrayList имеет синхронизированные операции add, remove и т.п. Но итератор в данном случае не синхронизирован. Поэтому, при использовании итератора, synchronizedList нужно обязательно синхронизировать вручную.
List list = Collections.synchronizedList(new ArrayList());
...
synchronized(list) {
Iterator i = list.iterator(); // Синхронизированный итератор
while (i.hasNext())
foo(i.next());
}
CopyOnWriteArrayList действительно полностью синхронизирован, в том числе для итератора. Что именно использовать - зависит от логики приложения и личных предпочтений.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Полагаю, что это один из самых распространенных вопросов от начинающихЯ учусь по учебнику с сайта ProgLang
Скажите, в каких ситуациях используют к примеру less если есть postcss с кучей полезных плагинов? например nextCss
Нужно сделать так чтобы клиент ждал ответа от сервераВнутри блока socket