In this chapter, you saw how Java EE ensures that you can parallelize the computing of your applications, and make your applications scale better and process multiple concurrent requests.
Using Java Standalone synchronization mechanisms, Java EE threading management solutions and API will let you get the best out of your hardware and integrate with third-party libraries very easily.
Now that we have seen what is related to the CPU, we need to go through the machine's other main resource that you can exploit to make your application's behavior better: the memory. When processing can't be optimized and is too impacting on the application, the solution is often just to skip it as much as possible. The most common—and probably, efficient—way of doing so is to make sure that the data is computed once and reused while valid. This is where the caching...