Sin Cheeso, no hay piscina en general objeto como éste. Pero es una buena idea Creo que esto sería bastante simple de desarrollar. La clave es hacer que funcione bien en un entorno enhebrado.
Creo que este es un problema de diseño interesante. Por ejemplo, si esto necesita escalar en el hardware de clase de servidor, y le dará objetos a hilos individuales a menudo, entonces puede hacer esto:
- Mantenga un solo grupo central de objetos.
- Mantiene un grupo por subprocesos (un caché) que se completa cuando se llama por primera vez para un subproceso y cuando se vacía.
De esta forma, se evita la contención por subproceso para la mayoría de las solicitudes.
Las diferentes condiciones de funcionamiento lo llevarían a un diseño diferente. Por ejemplo, si las asignaciones de objetos son raras o el número de subprocesos es bajo, entonces podría ser más simple simplemente tener un bloqueo alrededor de una colección. Esto no se escalará bien, pero en este caso, sería necesario.
Si diseña correctamente la clase o la interfaz, puede cambiar la implementación a lo largo del tiempo para manejar situaciones más complejas.
Bueno, eso funcionaría. un grupo de objetos puede ser bastante simple.Pero luego hay otras sutilezas como, una población de objetos acotada (no menor que x, no mayor que y), objetos nombrados, propiedades de objeto, algo así. Me preguntaba si alguien ya lo había diseñado y considerado estas cosas. – Cheeso
@ Cheeso - es posible que desee agregar eso a su pregunta, ya que cambiará la pregunta un poco. –