У меня есть список массивов, который я использую в своем многопоточном приложении, и я хочу, чтобы каким-то образом был возможность итерации по массиву, а не вызывая любые исключения, возникающие при добавлении элемента в список по мере повтора. Есть ли способ остановить изменение списка массивов, пока я повторяю его?Как перебирать список массивов в потоковом безопасном режиме (Java)
Редактировать: Теперь я понимаю, что мой вопрос был очень плохо представлен, а голоса вниз заслуживают внимания. Это попытка исправить мой вопрос.
Что я хочу сделать, так это иметь некоторый способ «заблокировать» список, прежде чем я перейду через него, чтобы я не получал исключение параллельной модификации. Проблема в том, что итерация займет совсем немного времени процессора, потому что список будет очень большим, и действие, которое я хочу выполнить для каждого элемента, займет довольно много времени. Это проблема, если я использую синхронизированные методы, потому что метод добавления будет блокироваться в течение большого количества времени и снижать производительность приложения. Так что я пытаюсь создать класс, который имитирует список массивов, за исключением того, что когда он «заблокирован», а метод пытается его изменить, он сохранит этот запрос, и когда список будет «разблокирован», он будет выполнять все запросы в отдельном потоке. Проблема в том, что когда я пытаюсь реализовать эту стратегию, я должен хранить запросы в каком-то списке и запускать те же проблемы, что и раньше, с необходимостью блокировать возможность добавления в список запросов, в то время как поток запроса выполняет итерацию по запросам. Я не понимаю, как реализовать это решение, или даже если оно является правильным. если бы кто-нибудь мог мне помочь, это было бы очень оценено.
Используйте поисковую систему на ваш выбор, чтобы найти: 'java synchronized'. Но если вы не знаете об этом уже, ваше многопоточное приложение будет иметь трудное время. –
Какова ваша идея или мысли о приближении к ней? – RamPrakash
вы пробовали? он должен бросить ConcurrentModificationException! – StackFlowed