2012-09-25 12 views
7

¿Cuál es la forma preferida en scala para gestionar grupos de objetos?scala-way para gestionar conjuntos de objetos

Necesito crear y eliminar objetos a gran escala de un solo hilo (sin necesidad de sincronización). En C++ he usado una matriz de objetos estáticos.

¿Cuál es la manera idiomática y efectiva de manejarlo en scala?

+0

la forma idiomática es dejar que el gc haga su trabajo y no preocuparse por ello. Si eso no es lo suficientemente rápido, lo idiomático que hay que hacer es sintonizar el GC. –

+0

¿Por qué crees que necesitas un conjunto de objetos? ¿Has intentado confiar en GC como primer intento? ¿Es alto el costo de inicializar/restablecer el objeto agrupado? – paradigmatic

+0

Estoy escribiendo un sistema de partículas. Una partícula vive rápido y muere joven. De hecho, hay muchas partículas haciéndolo. La forma más destacada de lidiar con ella parece crear un conjunto de objetos, ya que todas las partículas son iguales en términos de propiedades y campos. – ayvango

Respuesta

4

Lo envolvería en un Actor. Si usted no está familiarizado, echa un vistazo a Akka: http://doc.akka.io/docs/akka/2.0.3/scala/actors.html

Este es un buen ejemplo: https://github.com/derekjw/fyrie-redis/blob/master/src/main/scala/net/fyrie/redis/ConnectionPool.scala

El modelo de actor le permite garantizar el acceso de un solo subproceso porque los actores procesar los mensajes entrantes de uno en uno. Esto lleva a un código muy simple dentro del actor y una API muy simple.

Cuestiones relacionadas