У меня есть список объектов «Ячейка», которые представляют текущий статус.
List<Cell> currentCells = new ArrayList<Cell>();
Я хочу обновить текущий статус в al oop, вычислив будущий статус (новый список ячеек), а затем заменить на «текущий статус = будущий статус» " и так далее. Для этого у каждой ячейки есть метод, который возвращает новый объект ячейки, представляющий ее будущее. Этот метод имеет простые математические операции. Никаких зависимостей от других расчетов нет. Таким образом, теоретически будущие ячейки могут быть вычислены в параллельных потоках. чтобы достичь до 25 циклов в секунду.
Если я вычисляю его последовательно, мой l oop повторяется 3 раза в секунду. Если я выполняю сильное распараллеливание, делая каждую ячейку вызываемой и помещая их в ExecuterService, мой l oop повторяется только с 0,5 в секунду.
List<Future<Cell>> futures = taskExecutor.invokeAll(cells);
Я знаю, что решение проблемы параллельно всегда нужны накладные расходы. В этом случае это ускоряет мой l oop. Какой метод вы можете порекомендовать для ускорения моего l oop?