Ошибка списка исключений Java IndexOutOfBoundsException

#java #indexoutofboundsexception

#java #исключение indexoutofboundsexception

Вопрос:

Часть кода:

 List<Triangle> triangles = model.getTriangles().stream()
            .map(triangle -> triangle.rotate(orientation))
            .collect(Collectors.toList()); 
  

Насколько я понимаю model.getTriangles , функция получает данные и постоянно передает их в список треугольников.
Ну, проблема в том, что у меня есть 2 потока в моей программе. Основной поток и дополнительный.
Если они оба пытаются одновременно использовать эту часть кода, она выдает IndexOutOfBoundsException . Справка.

Комментарии:

1. synchronize(model) ?

2. И если вы запускаете свой код только в одном потоке, вы не получаете IndexOutOfBoundsException ?

3. Без дополнительного кода я могу просто посоветовать вам взглянуть на синхронизированные методы: docs.oracle.com/javase/tutorial/essential/concurrency/… Это должно решить вашу проблему.

4. В одном потоке, вероятно, нет. В главном потоке есть некоторые материалы, которые его используют (не мой код). Я отредактировал этот код в соответствии со своими целями и добавил отдельный поток для своих нужд. Кажется, они иногда конфликтуют. IntelliJ IDEA указывает на эту строку. Поиск в Google по этому поводу дает мне несколько смутных намеков на потокобезопасность.