- Direct Known Subclasses:
- HeapPool, HeapSlabPool
public abstract class Pool
extends java.lang.Object
Represents an amount of memory used for a given purpose, that can be allocated to specific tasks through
child AbstractAllocator objects. AbstractAllocator and MemoryTracker correspond approximately to PoolAllocator and Pool,
respectively, with the MemoryTracker bookkeeping the total shared use of resources, and the AbstractAllocator the amount
checked out and in use by a specific PoolAllocator.
Note the difference between acquire() and allocate(); allocate() makes more resources available to all owners,
and acquire() makes shared resources unavailable but still recorded. An Owner must always acquire resources,
but only needs to allocate if there are none already available. This distinction is not always meaningful.