Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

CodeSignal

Java Concurrency Foundations

via CodeSignal

Overview

This course builds on the concepts from the introductory Java Concurrency course. It dives deeper into memory visibility, synchronization mechanisms, deadlocks, inter-thread communication, and introduces lock-free programming techniques. You will learn how to optimize synchronization, use advanced lock mechanisms, and prevent common concurrency issues such as deadlocks and race conditions.

Syllabus

  • Unit 1: Java Memory Model and The Volatile Keyword
    • Understanding Volatile Keyword in Action
    • Enhancing Volatile with Multiple Threads
    • From Synchronized to Volatile
    • Volatile Stop Signal for Worker Thread
    • Implement Volatile Temperature Monitor
  • Unit 2: Optimizing Synchronization with Double-Checked Locking
    • Double-Checked Locking in Action
    • Optimize Logger with Double-Checked Locking
    • Database Connection Singleton Task
    • Implement a Singleton with Double-Checked Locking
  • Unit 3: Deadlocks and Lock Mechanisms
    • Safeguard Threads with Lock Order
    • Fix Lock Order to Prevent Deadlock
    • Advanced Locking for Safe Execution
    • Convert Synchronized BankAccount to ReentrantLock
    • Implement a Shared Resource Allocator Using ReentrantLock
  • Unit 4: Thread Coordination with wait/notify
    • Coordinating Threads with Countdown
    • Coordinating Multiple Countdown Threads
    • Identify the Countdown Bug
    • Simulate a Parking Lot Coordination System
  • Unit 5: Lock-Free Programming with Atomic Variables
    • Lock-Free Operations in Java
    • Add Reset and Decrement to Atomic Counter
    • Convert Synchronized Inventory Management to Atomic Variables
    • Ticket Booking System with Atomic Variables

Reviews

Start your review of Java Concurrency Foundations

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.