How to create an object pool to be able to borrow and return objects
I wanted to know that, is it possible to create a pool of objects? So that I can take an object from the pool and once I'm done with the work, I can put it into the pool.
It is possible yes. You can see performance improvements in many situations if the construction of a new object is expensive (like establishing a database connection) or if for other reasons the GC bandwidth is too high (often a problem in Android-land).
Here are some resources that you could use to implement your pool. You may be able to use Apache's ObjectPool
right out of the box.
- Apache Commons ObjectPool
- Does this basic Java object pool work?
- Object Pool Design Pattern in Java
- Google search: java object pool
Though its late but might be useful.
Following link provides sufficient information and implementation details for creating object pool using apache-commons-pool-2:
https://dzone.com/articles/creating-object-pool-java
As an alternative, if each object isn't that heavy weight, and/or you don't mind keeping the object around for each thread, consider ThreadLocal objects.
http://tutorials.jenkov.com/java-concurrency/threadlocal.html