
Fast, minimalistic object pool designed to manage object allocation efficiently. Supports a thread-local version and discards excess objects. Not inherently thread-safe.
Fast and minimalistic object pool with the following properties:
ThreadLocalObjectPool which is basically TheadLocal<ObjectPool<T>>.Simple:
val pool = SimpleObjectPool(capacity = 2..10, ::StringBuilder)
pool.use { stringBuilder ->
// ...
}With closable/disposable/cleanable objects:
val pool = object: AbstractObjectPool<ArrayList<String>>(capacity = 2..10) {
override fun allocate() = ArrayList()
override fun beforeRelease(value: T) {
value.close()
}
}
pool.use { list ->
// ...
}Fast and minimalistic object pool with the following properties:
ThreadLocalObjectPool which is basically TheadLocal<ObjectPool<T>>.Simple:
val pool = SimpleObjectPool(capacity = 2..10, ::StringBuilder)
pool.use { stringBuilder ->
// ...
}With closable/disposable/cleanable objects:
val pool = object: AbstractObjectPool<ArrayList<String>>(capacity = 2..10) {
override fun allocate() = ArrayList()
override fun beforeRelease(value: T) {
value.close()
}
}
pool.use { list ->
// ...
}