Multithreading & Concurrency in Java: Introduction to Concurrent Programming

Expected Duration
Lesson Objectives
Course Number
Expertise Level


Concurrent programming in Java allows you to run multiple sequences of operations at the same time using a variety of objects and mechanisms. In this course, you'll learn about concurrent programming concepts such as threads and processes, including working with multiple tasks, multithreading, and multiprocessing. You'll explore race conditions and concurrency challenges and how to achieve concurrent thread synchronization using locks. Next, you'll look at how semaphores can be used and conditions that may cause deadlocks. You'll examine Java objects that aid in working with multithreaded application, using atomic operations, and the benefits of using thread pools to manage multiple concurrently executing threads. Finally, you'll learn use cases of the Futures object and the Fork/Join framework in terms of executing multiple threads.

Expected Duration (hours)

Lesson Objectives

Multithreading & Concurrency in Java: Introduction to Concurrent Programming

  • discover the key concepts covered in this course
  • identify a sequential execution plan as well as its limitations
  • describe a multithreaded approach to tackling multiple tasks
  • distinguish between multithreading and multi-processing and describe the benefits and drawbacks of each approach
  • recognize a race condition and how this could lead to inconsistent outcomes
  • describe how synchronization of concurrent threads can be achieved using locks
  • identify use cases for semaphores and describe how they can be used
  • recognize the conditions under which concurrent threads may become deadlocked and how this can be prevented
  • recall Java objects that can be used to enable and simplify working with a multithreaded application
  • compare and contrast synchronization using locks with the use of atomic operations on atomic variables
  • describe the benefits of thread pools when it comes to management of multiple concurrently executing threads
  • list use cases of the Future object in Java and the Fork/Join framework when it comes to executing multiple threads
  • summarize the key concepts covered in this course
  • Course Number:

    Expertise Level