Junior — Middle
77
Можете объяснить, что такое CopyOnWriteArrayList в Java и как он работает?
Answer from AI
sobes.tech AI
CopyOnWriteArrayList — это потокобезопасная реализация интерфейса List в Java, которая подходит для сценариев с частыми операциями чтения и редкими операциями записи.
Основной принцип работы:
- При каждой операции модификации (например, добавлении или удалении элемента) создаётся новая копия внутреннего массива.
- Операции чтения работают с неизменяемой копией массива без блокировок, что обеспечивает высокую производительность при чтении.
Это значит, что:
- Чтение не блокируется и очень быстрое.
- Запись дороже, так как требует копирования всего массива.
Пример использования:
CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
list.add("A");
list.add("B");
for (String s : list) {
System.out.println(s);
}
Такой список хорошо подходит для кэширования, событийных систем, где много потоков читают данные, а изменения происходят редко.