Summary
This chapter focused on concurrency strategies and models, with the goal of providing insights into the concept of concurrency, the different models and strategies, and some implementation examples. We explored theoretical concepts and practical examples. The concepts covered included concurrency models, synchronization, and non-blocking algorithms. You should now have sufficient knowledge to start experimenting with code.
In the next chapter, we will explore connection pooling with a specific look at concepts, implementation, and best practices. You will have the opportunity to learn how to create and maintain a cache of database connection objects to help increase the performance of your Java applications.