Performance, Scalability and Liveness

This is our fourth installment in the “Java Concurrency Essentials” course. So far, we have been introduced to Threads and Concurrency, we have discussed concurrency fundamentals like Deadlocks and Object Monitors and we explored the java.util.concurrent Package, which includes many interesting classes that provide necessary and helpful functionality needed to implement multi-threaded applications.

In this lesson, we discuss the topic of performance for multi-threaded applications. After defining the terms performance and scalability, we take a closer look at Amdahl’s Law. Further in the lesson we see how we can reduce lock contention by applying different techniques, which are demonstrated with code examples.

Get started here