From race conditions to virtual threads: write correct, fast, scalable concurrent Java with hands-on examples
Sub Category
- Programming Languages
{inAds}
Objectives
- Create and coordinate threads and fix real race conditions with synchronized, volatile, and atomic variables
- Use the java.util.concurrent toolkit: ReentrantLock, conditions, CountDownLatch, Semaphore, and CyclicBarrier
- Replace hand-managed threads with ExecutorService, Callable, Future, and correctly sized thread pools
- Compose asynchronous work with CompletableFuture, including chaining, fan-out, fan-in, and error handling
- Apply the modern toolkit: ConcurrentHashMap, BlockingQueue, parallel streams, fork/join, and virtual threads
- Understand the Java Memory Model and the happens-before rule that governs visibility and ordering
- Diagnose and prevent deadlock, livelock, starvation, false sharing, and other concurrency failure modes
- Choose the right concurrency tool for the job and write code that scales on modern multicore hardware
Pre Requisites
- Solid working knowledge of core Java: classes, methods, generics, and collections
- Comfort writing, compiling, and running Java programs (JDK installed)
- Familiarity with using a terminal or command line and an IDE
- A computer running Windows, macOS, or Linux with JDK 17 or newer
- No prior experience with threads or concurrency required
FAQ
- Q. How long do I have access to the course materials?
- A. You can view and review the lecture materials indefinitely, like an on-demand channel.
- Q. Can I take my courses with me wherever I go?
- A. Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
{inAds}
Coupon Code(s)