У меня есть в моем коде:
public static Set<Long> workItemsForTasks = new HashSet<Long>();
Это веб-приложение, и во время кода пользователи могут добавлять новые элементы на карту - и я добавляю код, подобный этому:
WorkflowOperations.workItemsForTasks.add(workItem.getId());
Как только рабочий процесс достигает определенного кода, я зацикливаюсь на карте следующим образом:
Iterator workItemsIter = service.workItemsForTasksToBMS.iterator();
while (workItemsIter.hasNext()) {
workItemsIter.remove();
...
}
Мой вопрос:
Как только я получу итератор - если другой пользователь добавилновый элемент на карте (поскольку он не находится на той же интернет-странице) - повлияет ли он на карту, пока я зациклюсь на ней?Или получение итератора гарантирует мне, что он хранит размер карты до момента начала цикла?
РЕДАКТИРОВАНИЕ
Это веб-приложение, которое принимает различные вызовы веб-службы.
В вызове A пользователи могут добавлять данные, которые в Call BI могут понадобитьсяhandle.
Итак, я определил одноэлементный класс (с помощью Spring Bean), который содержит набор данных, которые мне нужно обработать (данные являются числами), и я изменяю Set каждый раз, когда у меня есть веб-служба Вызов A... как только пользователь запрашивает веб-службу Call B - я должен собрать данные и выполнить с ними что-либо.