Sobes.tech
Назад к вопросам
Junior — Middle
66

Какой потокобезопасный контейнер наиболее подходит для операций преимущественного чтения?

Ответ от нейросети

sobes.tech AI

Для операций преимущественного чтения в Java наиболее подходит класс CopyOnWriteArrayList из пакета java.util.concurrent.

Этот потокобезопасный контейнер реализует стратегию копирования массива при каждой операции записи, что делает чтение очень быстрым и не блокирующим, так как чтения работают с неизменяемой копией данных.

Пример использования:

import java.util.concurrent.CopyOnWriteArrayList;

CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
list.add("элемент1");
list.add("элемент2");

// Множество потоков могут безопасно читать список без блокировок
for (String item : list) {
    System.out.println(item);
}

// Запись (добавление) создаст копию массива
list.add("элемент3");

Таким образом, CopyOnWriteArrayList оптимален, когда операций чтения значительно больше, чем операций записи.