У меня есть arrayList, который является статическим в классе.
В начале каждого запроса я удаляю все устаревшие элементы: arrayList.entrySet().removeIf(entry -> entry.getValue().isObsolete());
Удаление выполняется, если элемент старше 1 часа.этот метод синхронизирован.
Каждый API использует элемент из списка на основе параметра.Если он находится в списке, он берет его оттуда, в противном случае он создает новый элемент и добавляет его в список.API обновляет данные элемента с определенной логикой.
Как можно избежать ситуации, когда я обновляю данные элемента в API x, в то время как API y, который только что был вызван, удаляет его?
Нужно ли синхронизировать все мои API?Нужно ли блокировать объект arrayList в начале каждого API?Есть ли лучший / более чистый способ сделать это?
Спасибо