Nie Cheeso, nie istnieje ogólna pula obiektów jak ten. Ale to dobry pomysł. Myślę, że byłoby to dość proste do opracowania. Kluczową sprawą jest sprawienie, by działało dobrze w środowisku z gwintem.
Myślę, że jest to interesujący problem projektowy. Na przykład, jeśli konieczne jest skalowanie na sprzęcie klasy Sever, a ty możesz często udostępniać obiekty poszczególnym wątkom, możesz to zrobić:
- Zachowaj pojedynczą centralną pulę obiektów.
- Zachowaj pulę wątków (pamięć podręczną), która jest zapełniana, gdy jest wywoływana po raz pierwszy dla wątku, a gdy staje się pusta.
W ten sposób unikasz rywalizacji między wątkami dla większości żądań.
Różne warunki operacyjne doprowadziłyby do innego projektu. Na przykład, jeśli alokacje obiektów są rzadkie lub liczba wątków jest mała, może być prostsze po prostu zablokowanie kolekcji. To nie będzie dobrze skalowane, ale w tym przypadku będzie musiało.
Jeśli projektujesz klasę lub interfejs poprawnie, możesz z czasem zmienić implementację, aby obsługiwać bardziej złożone scenariusze.
Cóż, to zadziała. Pula obiektów może być całkiem prosta.Ale są też dodatkowe nicetie, takie jak ograniczona populacja obiektu (nie mniej niż x, nie wyższa niż y), nazwane obiekty, właściwości obiektu, coś w tym stylu. Zastanawiałem się tylko, czy ktoś już to zaprojektował i rozważył te rzeczy. – Cheeso
@Cheeso - możesz dodać to do swojego pytania, ponieważ zmieni ono trochę pytanie. –