Java Concurrency Troubleshooting: Latency and Throughput

Java Concurrency Troubleshooting: Latency and Throughput

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 1h 17m | 242 MB

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.

Table of Contents

1 Welcome to high-performing Java applications
2 So your Java application is slow
3 Troubleshooting latency vs. throughput
4 Parallelism vs. concurrency
5 Synchronization and locking
6 Garbage collection
7 Resource chokepoints and long-running operations
8 Bad component defaults
9 Java stream issues
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
20 Conquer your threads