Java concurrency
Start with how threads execute work, then move to controlling access to shared resources. The later articles cover virtual threads under load and structured concurrency. Check each article’s Java version when using a preview API.
Start here
- Java Thread Programming (Part 1)
Start with thread fundamentals.
- What is a semaphore, and when to use it?
Use permits to control concurrent access.
- Java Virtual Threads Under Load: Three Limits to Make Explicit
Understand admission limits, locks, and cancellation under load.
- Structured Concurrency in Java 26: API Polishing, Timeouts, and Better Joiners
Coordinate related tasks with structured concurrency.
Explore
- Java Virtual Threads Under Load: Three Limits to Make Explicit
- Structured Concurrency in Java 26: API Polishing, Timeouts, and Better Joiners
- Java’s Structured Concurrency: Finally Finding Its Footing
- How to Diagnose and Mitigate Pinning in Java’s Virtual Thread Execution
- What is a semaphore, and when to use it?
- What is CyclicBarrier and When to Use It in Java?
- What is CountDownLatch and How to Use It?
- Web Crawling in Java: A Tale of Classical Threads and Virtual Threads
- Thread-Safe Counter in Java: A Comprehensive Guide
- Unleashing the Power of Lightweight Concurrency: A Comprehensive Guide to Java Virtual Threads (Part 1)
- Java Thread Programming (Part 15)
- Your Java Code in the Fastlane: Creating a Million Virtual Threads Using Project Loom to Improve Throughput
- 5 Things You Probably Didn’t Know About Java Concurrency
- Java Thread Programming (Part 14)
- Java Thread Programming (Part 13)
- Java Thread Programming (Part 12)
- Java Thread Programming (Part 11)
- Java Thread Programming (Part 10)
- Java Thread Programming (Part 9)
- Java Thread Programming (Part 8)
- Java Thread Programming (Part 7)
- Java Thread Programming (Part 6)
- Java Thread Programming (Part 5)
- Java Thread Programming (Part 4)
- Java Thread Programming (Part 3)
- Java Thread Programming (Part 2)
- Java Thread Programming (Part 1)