Android Multithreading Masterclass
Section 1: Introduction
1. What You Get From This Course
2. Java and Kotlin
3. Tutorial Application Overview and Important Info
Section 2: Concurrency and Multithreading Fundamentals
4. Motivation for Hardware Intuition
5. CPU Operation Basics
6. Single-Tasking System
7. Cooperative Multitasking System
8. Preemptive Multitasking System
9. Multiprocessing System
10. Android Processes and Threads
Section 3: Thread Class, Garbage Collector, Memory Leaks
11. java.lang.Thread Class
12. Exercise 1
13. Garbage Collector in Android
14. Memory Leaks in Android
15. Threads Termination
16. Exercise 2
17. Thread Class, Garbage Collector, Memory Leaks Summary
Section 4: UI Thread in Android Applications
18. UI Thread vs Background Thread in Android
19. Demonstration of UI Thread
20. User Interface Responsiveness
21. Protection of User Interface from Background Threads
22. Execution of Code on UI Thread
23. Handler and Looper Intuition
24. Exercise 3
25. UI Thread in Android Applications Summary
Section 5: Multithreading Challenges
26. Introduction To Multithreading Challenges
27. Visibility
28. Atomicity
29. Volatile Variables
Concurrency Bug Fix, or When Volatile isn’t Sufficient
30. Atomic Classes
31. Threads Synchronization
32. Immutability
33. Happens Before
34. Happens Before Demonstration
35. Exercise 4
36. Exercise 4 Solution
37. Amendment to Exercise 4 Solution
38. Multithreading Challenges Summary
Section 6: Paused (Blocked) Threads
39. Pausing Threads
40. Thread Sleep
41. Thread Wait
42. Thread Join
43. Amendment To Thread Join
44. Exercise 5
45. Solution Exercise 5
46. Paused (Blocked) Threads Summary
Section 7: Clean Design of Multithreaded Code
47. Importance of Clean Design
48. Refactoring to Use Case and Observer
49. Java 8 Lambdas
50. Exercise 6
51. Clean Design of Multithreaded Code Summary
Section 8: Thread Pool
52. Simple Cached Thread Pool
53. Thread Pool Issues
54. Custom Configuration Of ThreadPoolExecutor
55. Interplay Between Core Threads and Keep Alive Time
56. Misconfiguration of ThreadPoolExecutor in AsyncTask
57. Providing Multithreading Classes Using Dependency Injection
58. Exercise 7
59. Thread Pool Summary
Section 9: AsyncTask
60. Why You Need to Know AsyncTask
61. AsyncTask Demonstration and Highlight of Issues
62. AsyncTask Summary
Section 10: ThreadPoster
63. ThreadPoster Demonstration
64. Exercise 8
65. ThreadPoster Summary
Section 11: RxJava
66. RxJava Introduction
67. RxJava Observable
68. RxJava Disposable
69. RxJava Advanced Multithreading
70. Exercise 9
71. RxJava Summary
Section 12: Coroutines
72. Kotlin and Corooutines
73. Coroutines Demonstration
74. Nested Coroutines
75. Coroutines Dispatchers
76. Coroutines Cancellation
77. Non Cancellable Coroutines
78. Exercise 10
79. Coroutines Summary
Section 13: Course Summary and Next Steps
80. Summary
81. Bonus Lecture
Previous Lesson
Next Lesson
16. Exercise 2
Android Multithreading Masterclass
16. Exercise 2
Previous Lesson
Back to Course
Next Lesson