Java Concurrency Troubleshooting: Latency and Throughput
1h 17mIntermediate2020-11-13
Authors

Tayo Koleoso
Lead Programmer
Course details
Concurrency and its related problems are common in enterprises. But developers who can effectively troubleshoot these issues—and write thread-safe code—are often not as easy to find. In this course, instructor Tayo Koleoso helps equip Java developers with best practices for identifying sources of blocked threads, as well as tips for preventing and solving latency issues in multithreaded Java applications. Tayo goes over the coding practices and Java platform techniques that may be slowing down your application, including how parallel Java streams—which can be convenient and great for easy multithreading—present risks and pitfalls. He also highlights the different tools and resources that can help you identify what's slowing down your application. Discover how to work with Java Mission Control (JMC) to identify blocked threads in your Java virtual machines (JVMs), how to use the Java Flight Recorder (JFR) to identify blocked threads and monitor your JVM, and more.
Skills covered
Software Design PatternsJavaAdvancedOracleSoftware Development
Concepts
0. Introduction
- 01 - Welcome to high-performing Java applications
- 02 - So your Java application is slow
- 03 - Troubleshooting latency vs. throughput
- 04 - Parallelism vs. concurrency
1. Identify Sources of Blocked Threads
- 05 - Synchronization and locking
- 06 - Garbage collection
- 07 - Resource chokepoints and long-running operations
- 08 - Bad component defaults
- 09 - Java stream issues
2. Troubleshoot Blocked Threads
- 10 - Find the source of a blockage
- 11 - Collect thread dumps
- 12 - Challenge - Find the sleeping method
- 13 - Solution - Find the sleeping method
- 14 - Identify blocked threads in thread dumps
- 15 - View blocked threads with Java Mission Control
- 16 - View blocked threads with Java Flight Recorder
- 17 - Microbenchmarks in Java with JMH
- 18 - Challenge - Run JMH benchmarks and compare
- 19 - Solution - Run JMH benchmarks and compare
Conclusion
- 20 - Conquer your threads