# Pools

Artifact: [androidx.core:core](https://developer.android.com/jetpack/androidx/releases/core) [View Source](https://cs.android.com/search?q=file:androidx/core/util/Pools.kt+class:androidx.core.util.Pools) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/core#1.1.0)

*** ** * ** ***


```
public final class Pools
```

<br />

*** ** * ** ***

Helper class for creating pools of objects. An example use looks like this:

```
class MyPooledClass {

    fun recycle() {
        // Clear state if needed, then return this instance to the Pool
        pool.release(this)
    }

    companion object {
        private val pool = Pools.SynchronizedPool<MyPooledClass>(10)

        fun obtain() : MyPooledClass {
            // Get an instance from the Pool or
            // construct a new one if none are available
            return pool.acquire() ?: MyPooledClass()
        }
    }
}
```

## Summary

| ### Nested types |
|---|
| `public interface https://developer.android.com/reference/androidx/core/util/Pools.Pool<T extends https://developer.android.com/reference/java/lang/Object.html>` Interface for managing a pool of objects. |
| `public class https://developer.android.com/reference/androidx/core/util/Pools.SimplePool<T extends https://developer.android.com/reference/java/lang/Object.html> implements https://developer.android.com/reference/androidx/core/util/Pools.Pool<@https://developer.android.com/reference/androidx/annotation/NonNull T>` Simple (non-synchronized) pool of objects. |
| `public class https://developer.android.com/reference/androidx/core/util/Pools.SynchronizedPool<T extends https://developer.android.com/reference/java/lang/Object.html> extends https://developer.android.com/reference/androidx/core/util/Pools.SimplePool<@https://developer.android.com/reference/androidx/annotation/NonNull T>` Synchronized pool of objects. |