Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Java: Multi-threading and Concurrency Simplified
Rating: 4.6 out of 5(1,253 ratings)
27,189 students

Java: Multi-threading and Concurrency Simplified

Confidently transform single threaded code to multithreaded code, understand concurrent utils and much more..
Created bySagar Uppuluri
Last updated 3/2021
English

What you'll learn

  • Understand Thread concepts - Designing, States, Priorities, Daemon Threads.
  • Apply concurrency control techniques using synchronized blocks and locks.
  • Understand the key components of java\.util\.concurrent package including Fork Join Framework
  • Mock a simple HttpServer interaction
  • Kick start thinking in distributed way

Course content

8 sections61 lectures4h 24m total length
  • Introduction1:29
  • Single Threaded vs Multi Threaded Apps1:28

    Explain single threaded versus multi-threaded apps using serial execution, parallel tasks, and examples like a text editor, web apps, and an audio player in Java.

  • Single Threaded App Example3:11

    Multi-threaded applications normally do parallel processing of tasks where as single threaded applications do one task at a time i.e. If there are two tasks such as T1, T2 they are executed in serial order i.e T1 after T2 or T2 after T1, where as multi threading enables us to execute them simultaneously i.e. T1 along with T2. We can choose single threaded applications when parallel processing is not required example use cases such as simple text editor. 

  • Notes - Single Threaded App Example0:47
  • True Parallelism vs Logical Parallelism3:28

    True parallelism is achieved by assigning tasks to individual CPUs. Where as if there is one CPU and you want to perform multiple tasks in parallel, then CPU will be shared across those tasks for some stipulated time interval, which stands for interleaved execution, and this way of executing the tasks is known as logical parallelism or psuedo parallelism.

  • Notes - True Parallelism vs Logical Parallelism1:20

Requirements

  • You should possess the basic knowledge in Object oriented programming in Java.

Description

Multi threading in Java is the most essential feature that each and every Java developer should understand and be able to confidently apply it in solving complex programming problems where concurrent execution is a must. With parallel processing there comes a risk, i.e. shared mutability and the ability of the developer to solve concurrency problems. 

Thanks to the Java programming language that it makes the mighty multi-threaded application development a cake walk, if you assimilate few keys or core concepts you will be able to confidently design multi threaded applications with ease.

To design multi threaded applications developers need to look at it through a different perspective i.e. change the thinking from serial to parallel and it requires some effort. Keeping this in mind this course contains the essential lectures which can guide you in this regard.

This course was designed keeping the above points in mind and will help you understand these complex problems through simplified and easy to understand examples. 

Course contents include

  • Understanding Threads, Priorities, States, Daemon Threads.

  • Thread synchronization using synchronized blocks and locks.

  • Key components of java.util.concurrent package including ForkJoinPool and ForkJoinTask(s).

  • Mock HttpServer to explain how HTTP works and simulate how a typical web server responds to the client requests.

  • ThreadLocal

  • Introduction to distributed locks

  • An overview of how to build scalable applications using Messaging Queues.

  • Introduction to Lambdas and Streams (Coming up)

Who this course is for:

  • Any one who is looking to add Multithreading and concurrency to their skill set along with Java