Udemy

Java Concurrency & Multithreading: beginner to intermediate

Enroll Now
  • 117 Students
  • Updated 5/2023
4.7
(17 Ratings)
CTgoodjobs selects quality courses to enhance professionals' competitiveness. By purchasing courses through links on our site, we may receive an affiliate commission.

Course Information

Registration period
Year-round Recruitment
Course Level
Study Mode
Duration
3 Hour(s) 56 Minute(s)
Language
English
Taught by
Kiryl Yesipau, Yestastic Tech Labs LLC
Rating
4.7
(17 Ratings)
2 views

Course Overview

Java Concurrency & Multithreading: beginner to intermediate

Learn Java multi-threading and resolve data and race conditions with volatile, atomics, and synchronized

Learn how to write applications that take full advantage of processor power by parallelizing computations and avoiding idle cycles with Java concurrency and multithreading. This course will cover both the concepts behind multithreading and concurrency with real-world examples and provide practical coding examples that demonstrate how to use the capabilities provided by the JDK.

By the end of this course, you will:

  • Understand the concepts of processes and threads in operating systems and be able to distinguish between the two.

  • Define threads in Java using Thread, Runnable, and Callable.

  • Be familiar with Java thread states and the thread lifecycle.

  • Know the different ways to start threads, including using .start(), ExecutorService, and .parallelStream() capabilities.

  • Understand the concept behind the ExecutorService thread reuse strategy.

  • Understand both blocking and non-blocking mechanisms for working with the Future interface.

  • Learn about daemon threads.

  • Be able to use the .join() and .interrupt() thread capabilities.

  • Understand the concept of data race and how to mitigate it using the volatile keyword.

  • Be familiar with the race condition concept and the mutex strategy to mitigate it.

  • Know how to write Java code using the synchronized keyword to implement the mutex paradigm.

  • Understand the compare-and-swap processor instruction and how it is used in the Java atomics package.

  • Know when and how to use AtomicInteger.

  • Learn about the ThreadLocal class.

  • Be able to take thread dumps of the JVM process.


This course is officially owned and provided by Yestastic Tech Labs LLC.

Course Content

  • 6 section(s)
  • 33 lecture(s)
  • Section 1 Introduction
  • Section 2 Inside Computer
  • Section 3 Starting Threads
  • Section 4 Read/write data race and volatile
  • Section 5 Synchronized and atomic
  • Section 6 Tips, tricks and outro

What You’ll Learn

  • A high-level overview of process management by the operating system
  • A high-level overview of thread management by the operating system
  • The fundamental difference between a process and a thread
  • How to define a thread using the Thread subclassing approach
  • How to define a thread by implementing the Runnable interface
  • The different states of a thread and its lifecycle
  • How to start threads using the start() method and the ExecutorService
  • The strategy for reusing threads employed by the ExecutorService
  • How to define a thread by implementing the Callable interface
  • How to use the Future interface in blocking and non-blocking ways
  • The usage of daemon threads
  • The functionality of the Thread's .join() and .interrupt() methods
  • The concept of data race and its details
  • How to use the 'volatile' keyword to avoid data race
  • The concept of mutex / intrinsic lock / monitor
  • The concept of race condition, its details and difference from the data race
  • How to use the 'synchronized' keyword to implement mutex/monitor acquire in Java
  • The concept of the compare-and-swap CPU instruction
  • A high-level overview of the Java atomics package and its relation to compare-and-swap
  • How to use the AtomicInteger class to avoid arithmetic operation race condition
  • The usage of the ThreadLocal class in Java
  • How to take thread dumps of the JVM process
  • How to use the .parallelStream() method in the Java Streaming API


Reviews

  • P
    Phùng Văn Tiến Đạt
    5.0

    Good course for beginner, Very well-explained

  • F
    Felipe Matheus D'avila Pereira
    5.0

    Excelente.

  • O
    Olujimi Otulana
    4.5

    A great introduction course on multithreading especially how it functions at the machine level. A good start if you have just been following practices without understanding the real depth of the processing. However could be a bit more engaging and interactive

  • P
    Pawan Bhatt
    4.0

    Perfect course for beginner. 4 star for explanation......however need more concrete examples that just cashier and alice bob stuff......so reducing one star

Start FollowingSee all

We use cookies to enhance your experience on our website. Please read and confirm your agreement to our Privacy Policy and Terms and Conditions before continue to browse our website.

Read and Agreed