Junior — Middle
Kako implementirati kolekciju koja je sigurna za niti u aplikaciji?
sobes.tech АИ
Одговор од АИ
Для реализации потокобезопасной коллекции в Java можно использовать классы из пакета java.util.concurrent. Например:
ConcurrentHashMap— потокобезопасный аналогHashMap.CopyOnWriteArrayList— потокобезопасный список, который копирует внутренний массив при изменениях.BlockingQueue(например,LinkedBlockingQueue) — потокобезопасная очередь с блокирующими операциями.
Пример использования ConcurrentHashMap:
import java.util.concurrent.ConcurrentHashMap;
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key1", 1);
Integer value = map.get("key1");
Если нужно сделать потокобезопасной обычную коллекцию, можно использовать обертки из Collections.synchronizedList() и т.п., но лучше применять специализированные классы из java.util.concurrent.