The untapped power of parallel programming: build efficient code that scales
summary
Parallelizing a nightly credit‑card batch cuts a 15 GB file’s processing from roughly seven hours to about 2.5 hours by using a producer/consumer pipeline with 4 consumers, managed threads, cancellation tokens and thread-safe collections, code published on GitHub. Covers concrete pitfalls that occurred: reproducible deadlocks, race conditions and thread contention, explains why async/await (history in .NET and JavaScript/TypeScript) doesn’t equal multithreading, and shows how to measure and tune thread counts.
AI-written summary · about
chapters (13)
- 0:00Introduction and welcome
- 1:51Personal journey into parallel programming
- 3:41What is parallel programming
- 5:26When to use parallel programs
- 6:53Trade-offs of parallelization
- 9:02Common pitfalls in parallel code
- 11:30Live examples of race conditions
- 14:01Thread contention explained
- 15:08Deadlock demonstration
- 16:33Thread-safe collections and strategies
- 18:21History of async/await
- 21:13Checklist before parallelizing code
- 25:34Q&A session begins
related talks
48m“Is Parallel Programming still hard? PART 2 of 2”
59mAn Introduction to Multithreading in C++20
59m“Is Parallel Programming still hard? PART 1 of 2”
39mLet's talk concurrency
01h 04mMaking fun with parallelism in .NET
01h 08mBetter Code: Concurrency
39mPushing 'await' to the Limits: Unleashing Multi-Threading Power in .NET
01h 04mAtomics, Locks, and Tasks (part 2 of 2)
