scala-way для управления объектными пулами
Какой способ в Scala является предпочтительным для управления пулами объектов?
Мне нужно создавать и удалять крупномасштабные объекты однопоточные (нет необходимости в синхронизации) . В C++ я использовал массив статических объектов.
Какой идиоматичный и эффективный способ справиться с этим в скале?
1 ответ
Я бы обернул это в актера. Если вы не знакомы, проверьте Акка: http://doc.akka.io/docs/akka/2.0.3/scala/actors.html
Это довольно хороший пример: https://github.com/derekjw/fyrie-redis/blob/master/src/main/scala/net/fyrie/redis/ConnectionPool.scala
Модель актора позволяет вам гарантировать однопоточный доступ, потому что акторы обрабатывают входящие сообщения по одному. Это приводит к очень простому коду внутри актера и очень простому API.