У меня есть большой объект Mutable Map, который занимает столько памяти, что все дочерние элементы родителя должны получать или изменять значения на одну и ту же карту.Совместное использование Mutable Map через akka actor children
Я рассматриваю возможность передачи измененной карты во время создания ребенка в качестве параметров конструктора для всех детей, на которые они могут получить доступ или изменить карту соответственно.
Я просто хотел подтвердить, что SCALA фактически передает ссылку на объект вокруг, и поэтому Mutable Map не будет копироваться снова, вместо этого все дети будут изменять один и тот же экземпляр карты?
Я не эксперт в этом каким-либо образом, но может быть хорошей идеей обернуть изменчивую карту в актера? – acjay
Альтернатива: вы можете взглянуть на [akka STM] (http://nbronson.github.io/scala-stm/quick_start.html) и посмотреть, подходит ли это вашему прецеденту. В нем говорится: «Мы создадим двунаправленный список [mutable], который можно безопасно использовать несколькими потоками или участниками ... есть также транзакционные коллекции (например, TMap и TSet), которые являются заменами для коллекций из' scala.collection .mutable' "_ – mucaho
Как вы можете узнать, скопирован ли объект или нет: отлаживайте программу, записывая значение' hashCode() 'карты в каждом акторе. Если значения одинаковые, то с 99.9 *% тот же объект. Если они отличаются, карта копируется. – mucaho