Итак, я делаю обработку изображений с актерами Akka через Java и имею функцию, которая применяет преобразование по одному пикселю за раз. Это делается стандартным способом - вложено в циклы для строк и столбцов. Информация для изображения загружается в двумерный массив, и каждому актеру присваивается начальная строка и конечная строка.
Проблема, с которой я сталкиваюсь, заключается в том, что, когда я раскручиваю больше одного актера, все актеры, кроме первого, относительно быстро умирают в исполнении.
Например - у меня есть код, похожий на этот, который работает на актерах:
for (int row = this.startRow; row <= this.endRow; row++) {
System.out.println("Running for row " + row);
}
В цикле for, очевидно, происходит много других вещей, но важная часть здесь:
Если я раскручиваю одного актера и говорю, что его startRow равен 0, а его endRow равен 1000, процесс запускается точно так, как ожидалось. В окне моего терминала я получаю список чисел от 0 до 1000. Имеет смысл!
Проблема возникает, когда я добавляю другого актера. Если я создам двух актеров:
- startRow 0, endRow 500
- startRow 501, endRow 1000
Мой вывод на консоль выглядит так:
Running for row 0
Running for row 501
Running for row 1
Running for row 502
Running for row 2
Running for row 503
Running for row 3
Running for row 504
Running for row 4
Running for row 505
Running for row 5
Running for row 506
Running for row 6
Running for row 7
Running for row 8
Running for row 9
Running for row 10
Running for row 11
Running for row 12
Running for row 13
Running for row 14
Running for row 15
Running for row 16
Running for row 17
Running for row 18
Running for row 19
Running for row 20
И обычно он проходит ровно 6 строк, прежде чем прекращает выполнение. Я чувствую, что также важно упомянуть, что никаких ошибок не возникает. У меня пока нет кода для экспорта изображения, но даже если бы я это сделал, это не помешало бы моему второму актеру умирать после 6-7 итераций.