Multithreaded Pipeline in Java
summary
Covers building a multithreaded pipeline in Java: identifies pitfalls of modern non-synchronized concurrent tools and shows how to design a pipeline that avoids under- and over-utilization of resources. Explains how to predict how many threads and how much hardware a multithreaded Java application will need and how to size and allocate those resources.
AI-written summary · about
chapters (28)
- 0:00Introduction
- 2:51Multithreading goals in Java
- 7:08Common multithreading tasks
- 8:32What is a pipeline
- 10:37Winnie-the-Pooh example
- 12:23Problems with single-threaded approach
- 14:52Thread scaling mistakes
- 17:00Uneven resource utilization
- 19:48Task breakdown into stages
- 22:16Pipeline resource optimization
- 24:44Quick pipeline with executor service
- 27:13Thread count calculation
- 31:47Optimizing disk I/O
- 32:08Optimizing network I/O
- 34:13Memory considerations in multithreading
- 35:40Port and connection limits
- 37:27Practical thread calculation example
- 39:16Context switch overhead
- 40:59Server specialization
- 42:50Real optimization example
- 45:18Optimization economic impact
- 46:21When pipeline fails
- 48:27OS resources and limits
- 51:58How to interrupt pipeline
- 55:30Business role in optimization
- 57:39Queues and Kafka usage
- 58:44Elastic thread pools
- 1:00:12Complex production bugs
related talks
01h 01mMultithreading vs Asynchronous Programming: The Architectural Shift
34mIntroduction and pitfalls of Java's new concurrency model
44mThinking in Streams
50mProject Loom: Helping Write Concurrent Applications on the Java Platform
59mAn Introduction to Multithreading in C++20
55mParallel-Ready Java Code
38mIntroduction and pitfalls of Java's new concurrency model
01h 06mProject Lambda: Simplifying Concurrent Programming in Java SE 8
