Android Multithreading Masterclass
4.8 (76 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
813 students enrolled

Android Multithreading Masterclass

Complete guide to multithreading in Android. From fundamentals to Thread Pools, RxJava and Kotlin Coroutines.
Highest Rated
4.8 (76 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
813 students enrolled
Created by Vasiliy Zukanov
Last updated 12/2019
English
English [Auto-generated]
30-Day Money-Back Guarantee
This course includes
  • 11 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 3,500+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Write thread-safe code of any complexity
  • Keep the user interface responsive at all times
  • Use the most popular multithreading frameworks for Android (RxJava, Kotlin Coroutines, etc.)
  • Prevent memory leaks in your Android applications
  • Find subtle thread-safety bugs in code
  • Manage up to hundreds of inter-dependent threads
Course content
Expand all 81 lectures 11:05:23
+ Concurrency and Multithreading Fundamentals
7 lectures 29:12
Motivation for Hardware Intuition
03:49
CPU Operation Basics
03:30
Single-Tasking System
04:01
Cooperative Multitasking System
03:56
Preemptive Multitasking System
04:37
Multiprocessing System
04:35
+ Thread Class, Garbage Collector, Memory Leaks
7 lectures 39:09
java.lang.Thread Class
03:59
Exercise 1
03:32
Garbage Collector in Android
07:16
Threads Termination
08:08
Thread Class, Garbage Collector, Memory Leaks Summary
02:18
+ UI Thread in Android Applications
8 lectures 39:23
UI Thread vs Background Thread in Android
03:04
Demonstration of UI Thread
02:22
User Interface Responsiveness
03:41
Protection of User Interface from Background Threads
02:52
Execution of Code on UI Thread
06:13
Handler and Looper Intuition
16:32
Exercise 3
02:03
UI Thread in Android Applications Summary
02:36
+ Multithreading Challenges
13 lectures 02:28:54
Introduction To Multithreading Challenges
02:46
Visibility
07:04
Atomicity
10:30
Volatile Variables
08:09
Atomic Classes
09:22
Threads Synchronization
22:15
Immutability
07:06
Happens Before
10:45
Happens Before Demonstration
17:46
Exercise 4
11:10
Exercise 4 Solution
19:23
Amendment to Exercise 4 Solution
12:47
Multithreading Challenges Summary
09:51
+ Paused (Blocked) Threads
8 lectures 01:23:07
Pausing Threads
05:36
Thread Sleep
09:37
Thread Wait
21:21
Thread Join
06:30
Amendment To Thread Join
12:35
Exercise 5
07:59
Solution Exercise 5
15:43
Paused (Blocked) Threads Summary
03:46
+ Clean Design of Multithreaded Code
5 lectures 40:07
Importance of Clean Design
03:05
Refactoring to Use Case and Observer
31:05
Java 8 Lambdas
02:02
Exercise 6
02:32
Clean Design of Multithreaded Code Summary
01:23
+ Thread Pool
8 lectures 01:17:08
Simple Cached Thread Pool
10:55
Thread Pool Issues
07:41
Custom Configuration Of ThreadPoolExecutor
18:30
Interplay Between Core Threads and Keep Alive Time
07:52
Misconfiguration of ThreadPoolExecutor in AsyncTask
11:29
Providing Multithreading Classes Using Dependency Injection
11:59
Exercise 7
02:57
Thread Pool Summary
05:45
+ AsyncTask
3 lectures 24:24
Why You Need to Know AsyncTask
01:40
AsyncTask Demonstration and Highlight of Issues
16:46
AsyncTask Summary
05:58
+ ThreadPoster
3 lectures 10:42
ThreadPoster Demonstration
05:09
Exercise 8
01:05
ThreadPoster Summary
04:28
Requirements
  • Basic knowledge in Android development
Description

After completing this course, you'll be able to write correct and efficient multithreaded code of any complexity in your Android applications!

Multithreading in Android is a complex, but very important topic. It's simply impossible to write real applications without offloading at least part of the work to so-called background threads. However, if you use multiple threads in your application, you need to employ special techniques to ensure that your code is thread-safe.

As you'll see in this course, laggy user interface, freezes, memory leaks, stuck flows, crashes - all these can come as a result of thread-safety issues in your code.

With this course you'll master multithreading in Android using well-defined, structured approach:


  • Start with the most low-level fundamentals of concurrency and multithreading in Android

  • Work with the lowest level mutlithreading primitives in Android framework

  • Keep the user interface of your application responsive and snappy

  • Understand how to make your code thread-safe

  • Analyze performance of multithreaded code

  • Ramp up your skills and manage up to hundreds(!) of concurrent threads

  • Get hands-on experience with the most popular multithreading frameworks in Android world (RxJava, Kotlin Coroutines and more)

To make the course practically useful, you'll apply all the concepts and techniques you'll learn in the lectures to solving carefully designed, hands-on exercises.

One of the main goals of this course, except for making you concurrency expert, is to demonstrate how you can use the most popular multithreading frameworks to implement complex flows. This will allow you to grasp the full landscape of multithreading in Android ecosystem as a whole. Then, after you get hands-on experience with all these frameworks, you'll be able to choose the framework you like the best and use it in your own Android projects!

So, with this course you'll get real skills and will become real Android multithreading expert!

Who this course is for:
  • Android developers