In this chapter, we will do the following:
Learn what a pooled object is, based on the Pool package
Learn the individual pool types
Figure out how to decide which objects need to be pooled
Use a pool of threads using the Threadpool package
Execute tasks based on immutable objects