用于管理对象池的scala-way

时间:2012-09-25 02:27:09

标签: scala objectpool

scala管理对象池的首选方法是什么?

我需要创建和删除单线程的大规模对象(不需要同步)。在c ++中,我使用了静态对象数组。

在scala中应对它的惯用和有效方法是什么?

1 个答案:

答案 0 :(得分:4)

我会将它包装在一个Actor中。如果您不熟悉,请查看Akka: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

actor模型允许您保证单线程访问,因为actor一次处理一个传入消息。这导致了actor内部非常简单的代码和非常简单的API。