Не безопасно иметь глобальную переменную, которая обновляется несколькими действующими лицами одновременно. Несколько акторов могут обрабатывать сообщения одновременно, и если два или более акторов попытаются обновить эти переменные одновременно, это не даст правильного результата. Таким образом, с этим алгоритмом вам по крайней мере нужно превратить counter
и result
в AtomicInteger
.
. Гораздо лучше улучшить алгоритм, чтобы избежать глобальных переменных. Информация о состоянии должна передаваться между участниками, используя запросы и ответы, а не находиться в переменных, к которым одновременно могут обращаться несколько участников